首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员:如何使用消息队列解决分布式事务?

互联网逐渐的强大,技术也越发的成熟,看了一篇关于分布式事务的问题。我给大家分享一下:

1、企业现在的架构都由传统的架构转向了微服务架构,那么不可避免的遇到数据库调用的,分布式事务问题!

目前,业内解决分布式事务问题,都基本不用JTA这种强一致性的解决方案,基本是采用如下两套方案:

基于TCC的事务框架

消息队列

2、任何涉及到数据库和中间件之间的业务逻辑操作,都需要考虑二者之间的一致性。比如,你先操作了数据库,在操作缓存,数据库和缓存之间一致性如何解决?

改变思路,加一张事务表,此时是对同一数据库的两张表操作,因此可以使用数据库的事务进行保证。

另外,起一个定时程序,定时扫描事务表,发现一个状态“UNFINISHED”的事件,就进行封装消息,发送到消息中间件,然后将状态改为“FINISHED”。

3、幂等性解决

定时扫描事务表,发现一个状态为“UNFINISHED”的事件

将事件信息,封装为消息,发送到消息中间件

将事件状态改为“FINISHED”

因此,幂等性也是需要保证的!

综上所述,微服务架构下,异步服务之间的分布式事务是如何保证的。至于同步服务,小主尽快更新!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190103A14KVV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券