微服务协作模式

微服务本身是独立且隔离的个体,基于业务的需要, 一个完整的业务可能需要多个微服务的数据整合。

  微服务与微服务之间不应该存在强耦合关系,应该存在协作关系,彼此独立。

  微服务之间的协作存在以下几种模式:

一 当前微服务执行读操作,该服务依赖的其他服务也是读操作,简称 "ReadRead"模式

二 当前微服务执行写操作,该服务依赖的其他服务存在写操作,简称 "ReadWrite"模式

 针对这种模式在DMS业务中不太可能存在,可以暂时忽略

三 当前微服务执行写操作,该服务依赖的其他服务存在读操作,简称 "WriteRead"模式

 针对这种模式的方案可以参考 服务补偿 + 服务内事务控制  → 可以借助于Java8 Completable Future或者RxJava

四 当前微服务执行写操作,该服务依赖的其他服务存在写操作,简称 "WriteWrite"模式

针对这种模式的方案,可以有两种方式来解决:

    1 服务补偿 + 服务内事务控制  

             可以借助于Java8 Completable Future或者RxJava + Spring 事务管理组件

             当需要强最终一致性时,可以使用同步变成模式,最终的效果:服务A调用服务B,只有在B有返回时再执行后面的代码

   

2 事件驱动 + 服务内事务控制  → 可以借助于Spring Cloud Stream + Spring事务管理组件

           这种模式比较适合弱一致性

猜你喜欢

转载自blog.csdn.net/ccc7574/article/details/84060604
今日推荐