本文通过使用Spring Cloud和Docker构建了一个常见的Microservice体系.
Spring Cloud为开发者提供了快速构建分布式系统中的一些常见工具, 如分布式配置中心, 服务发现与注册中心, 智能路由, 服务熔断及降级, 消息总线等.
而Spring Cloud Sleuth为Spring Cloud提供了分布式追踪方案, 可视化地分析服务调用链路和服务间的依赖关系
本次实战以模拟下单流程作为实战演示, 使用Try-Confirm-Cancel即TCC模式为分布式事务提供最终一致性.
完整的代码示例已经上传至
Github
Try Confirm Cancel补偿模式
本实例遵循的是Atomikos公司对微服务的分布式事务所提出的
RESTful TCC
解决方案
RESTful TCC模式分3个阶段执行
- Trying阶段主要针对业务系统检测及作出预留资源请求, 若预留资源成功, 则返回确认资源的链接与过期时间
- Confirm阶段主要是对业务系统的预留资源作出确认, 要求TCC服务的提供方要对确认预留资源的接口实现幂等性, 若Confirm成功则返回204, 资源超时则证明已经被回收且返回404
- Cancel阶段主要是在业务执行错误或者预留资源超时后执行的资源释放操作, Cancel接口是一个可选操作, 因为要求TCC服务的提供方实现自动回收的功能, 所以即便是不认为进行Cancel, 系统也会自动回收资源
对RESTful TCC事务更为详细的解释可以点击
这里
进行阅读
版权声明:本文为Solarison原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。