背景:一個(gè)項(xiàng)目平臺(tái)由八靡菇、九個(gè)微服務(wù)組成,這些微服務(wù)共用一個(gè)Mysql數(shù)據(jù)庫(kù)国夜,核心業(yè)務(wù)表有20張左右减噪。微服務(wù)間交叉使用的表大概7、8張左右车吹。
需求:項(xiàng)目平臺(tái)現(xiàn)在要在現(xiàn)有共用的表和字段基礎(chǔ)上新增字段筹裕。(在數(shù)據(jù)庫(kù)字段已經(jīng)部署至生產(chǎn)環(huán)境中,絕大多數(shù)情況下不允許修改字段名稱窄驹、類型等朝卒,只能新增。)
個(gè)人想到的一些方案:
1馒吴、共享Dao層共有entity實(shí)體類
將各個(gè)微服務(wù)Dao層交叉使用的entity實(shí)體類抽出來(lái)封裝成依賴包扎运,交由各個(gè)微服務(wù)引用依賴來(lái)使用。通過(guò)更新這個(gè)依賴包饮戳,來(lái)達(dá)成上述需求豪治。
優(yōu)點(diǎn):共有實(shí)體類統(tǒng)一維護(hù)
缺點(diǎn):
- 每個(gè)微服務(wù)需要維護(hù)依賴版本
- 強(qiáng)耦合,且有些實(shí)體類用不上
2扯罐、將Dao層抽出來(lái)负拟,封裝成一個(gè)微服務(wù),向其他微服務(wù)提供服務(wù)歹河。
缺點(diǎn):
- 網(wǎng)絡(luò)調(diào)用資源消耗太大掩浙,且不穩(wěn)定
- 強(qiáng)耦合,這個(gè)出問(wèn)題秸歧,整個(gè)項(xiàng)目直接宕機(jī)厨姚。
3、需求相關(guān)微服務(wù)逐個(gè)修改
優(yōu)點(diǎn):
- 低耦合
- 系統(tǒng)穩(wěn)定键菱,即使有個(gè)別服務(wù)沒(méi)有修改谬墙,也不影響生產(chǎn)運(yùn)行。
缺點(diǎn):逐個(gè)服務(wù)修改经备,工作量還是挺大的拭抬,且容易改漏。
注:本人知識(shí)面不夠?qū)捛置桑瑫簳r(shí)只想出上面三種方案造虎,大家如果有想法希望評(píng)論區(qū)補(bǔ)充。關(guān)于優(yōu)缺點(diǎn)也希望補(bǔ)充纷闺,希望能找到一個(gè)較優(yōu)的解決方案算凿。