首页 > 编程语言 > 详细

Spring Cloud微服务系统下的数据一致性探讨

时间:2017-12-24 15:37:17      阅读:282      评论:0      收藏:0      [点我收藏+]

我想这个问题需要根据自己的系统具体架构来分别讨论,这边拿一个车联网的系统举例。

拆除GPS这个功能接口需要分几个步骤实现(不涉及数据更新的步骤略去了):

①更改GPS设备状态(设备管理服务)

②更改工单状态(工单管理服务)

假设调用拆除GPS这个接口的时候,由于各种原因②不能工作了。

架构1:普通的微服务架构

工单管理服务要调用设备管理服务的功能,用的是spring cloud的自己的restTemplate,这个很简单,加上普通的事务就可以了。

架构2:引入了消息中间件

这个时候,服务之间调用加了一层消息中间件(以activemq为例),这也没关系,activemq有消息确认机制ACK,可以指定ACK_MODE为SESSION_TRANSACTED=0进行事务提交

,然后再配合原来的数据库事务,也可以实现。并且activemq还有失败重发机制,可以尝试N次重发失败之后再回滚。

架构3:用到了分库

那就涉及到多数据源了,这方面spring也可以集成atomiko实现分布式事务。

Spring Cloud微服务系统下的数据一致性探讨

原文:http://www.cnblogs.com/shamo89/p/8098050.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!