saga
微服务公认难点在于一致性,跨服务之间如何保证一致性成为业界难点,在DDD中给出了解决方案,既:长时处理过程(saga),其设计思想可以参照:
http://microservices.io/patterns/data/saga.html.
目前我整理一下如果要实现saga需要注意以下几点:
- 业务服务自身提供各状态接口
- 协调服务提供流程配置能力
- 协调服务需要先更新DB再调用业务服务接口,防止协调服务在处理过程中挂掉
- 协调服务须提供定时重试机制和删除过期功能
- 协调服务保证高可用
其中提供流程配置能力这项需要考虑以何种方式处理还需要考虑,有两方面因素:
- 便于开发人员操作
- 便于维护人员后续维护
希望有好的建议的同学在留言回复噢~