SpringCloud一个实体类在不同系统中是否唯一

SpringCloud核心问题

在微服务架构中一个非常棘手的问题是:一个实体类在不同系统中是否唯一?

方案一
  • 一个实体类在多个系统中存在

    • 优点
            这样可以极大的降低进程之间通讯的频率

    • 缺点
            每次更新数据结构都需要在所有引用了被更新字段的程序中进行更新,这会造成一个项目的更新引发多个项目都需要全部重启。当然,如果更新的表字段不影响当前进程的业务,可以先更新项目(开发测试环境)中的实体类,待下次系统上线再一并更新线上系统。再者,这种方案在项目体积日益庞大必须分库时,需在各个系统中从底层分解,带来的工作量的巨大且完全没有必要的。

方案二
  • 一个实体类在多个系统中唯一,在客户端创建VO接收来自服务端的对象

    • 优点
            如果更新的字段影响当前进程的业务,只需要更新客户端的VO及唯一的服务端实体类,如果更新的字段不影响当前进程的业务,则只需更新唯一的服务端实体类。且不影响分库

    • 缺点
            增加进程之间通讯的频率,增加团队之间协作的成本

总结

      笔者认为,以上方案一是不可取的,对项目维护极其不利。方案二虽然增加了通讯的开销,也增加了团队之间的协作成本,但能用得起这种大型架构的公司其数据量和规模可想而知,也是各大厂在使用的方案。

 
 
 
 
 
 
 
 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值