saga

saga

微服务公认难点在于一致性,跨服务之间如何保证一致性成为业界难点,在DDD中给出了解决方案,既:长时处理过程(saga),其设计思想可以参照:

http://microservices.io/patterns/data/saga.html.

目前我整理一下如果要实现saga需要注意以下几点:

  • 业务服务自身提供各状态接口
  • 协调服务提供流程配置能力
  • 协调服务需要先更新DB再调用业务服务接口,防止协调服务在处理过程中挂掉
  • 协调服务须提供定时重试机制和删除过期功能
  • 协调服务保证高可用

其中提供流程配置能力这项需要考虑以何种方式处理还需要考虑,有两方面因素:

  • 便于开发人员操作
  • 便于维护人员后续维护

希望有好的建议的同学在留言回复噢~

zhang dong wechat
关注我的微信来交流技术问题吧!