微服务拆分的原则?

按分享的经验来看,是需要将无关的功能都进行拆分,我理解就是原子化拆分。但现实业务场景中对于传统的应用系统,已经存在了大量的业务逻辑处理。这种迁移是一个比较长期且痛苦的事情,如何解决?...显示全部

按分享的经验来看,是需要将无关的功能都进行拆分,我理解就是原子化拆分。但现实业务场景中对于传统的应用系统,已经存在了大量的业务逻辑处理。这种迁移是一个比较长期且痛苦的事情,如何解决?

收起
参与13

查看其它 2 个回答ruffylangzi的回答

ruffylangziruffylangzi软件架构设计师博云

服务拆分大的前提可以参考DDD领域驱动设计。进一步讲,业务需要考虑三方面问题:1.服务边界切分;2.服务依赖梳理;3.服务交互规范标准;服务边界切分需要依赖”低耦合,高内聚“的原则,明切业务单元的边界,尽可能减少同一个业务的不同服务单元的调用依赖;服务依赖,需要明确一个业务构成过程中的服务依赖关系,避免出现回环依赖,双向依赖的场景。最好的方式是实现链式依赖调用;服务交互规范,从协议以及数据传输规范层面说明服务与服务之间的交互方式,包括采用的通信协议,数据传递格式等;
服务迁移的过程中,首先要考虑接口变化情况,对于前后端分离的架构,可以采用restful的方式进行,尽可能避免接口的平凡变更。同时复用原有的业务代码实现。线上迁移过程中,可以利用负载路由的控制实现逐步发布。

软件开发 · 2019-07-16
浏览2468

回答者

ruffylangzi
软件架构设计师博云
擅长领域: 云计算云原生微服务

ruffylangzi 最近回答过的问题

回答状态

  • 发布时间:2019-07-16
  • 关注会员:4 人
  • 回答浏览:2468
  • X社区推广