互联网逐渐的强大,技术也越发的成熟,看了一篇关于分布式事务的问题。我给大家分享一下:
1、企业现在的架构都由传统的架构转向了微服务架构,那么不可避免的遇到数据库调用的,分布式事务问题!
目前,业内解决分布式事务问题,都基本不用JTA这种强一致性的解决方案,基本是采用如下两套方案:
基于TCC的事务框架
消息队列
2、任何涉及到数据库和中间件之间的业务逻辑操作,都需要考虑二者之间的一致性。比如,你先操作了数据库,在操作缓存,数据库和缓存之间一致性如何解决?
改变思路,加一张事务表,此时是对同一数据库的两张表操作,因此可以使用数据库的事务进行保证。
另外,起一个定时程序,定时扫描事务表,发现一个状态“UNFINISHED”的事件,就进行封装消息,发送到消息中间件,然后将状态改为“FINISHED”。
3、幂等性解决
定时扫描事务表,发现一个状态为“UNFINISHED”的事件
将事件信息,封装为消息,发送到消息中间件
将事件状态改为“FINISHED”
因此,幂等性也是需要保证的!
综上所述,微服务架构下,异步服务之间的分布式事务是如何保证的。至于同步服务,小主尽快更新!
领取专属 10元无门槛券
私享最新 技术干货