本编博客主要介绍分布式事务的概念以及行业解决方案。微服务架构越来越流行了。然而,微服务中一个普遍的问题是如何跨多个微服务管理分布式事务。 这篇文章将分享一些经验,并解释问题和可能解决该问题的模式
分布式事务概念
什么是分布式?什么是事务?
什么是分布式事务
当微服务架构将单体系统分解为多个服务时,它可能会打破之前的事务。 微服务架构意味着单体系统中的本地事务现在被分配到多个服务中,这些服务将按顺序调用。
首先我们来看一个单体系统当中使用local transaction的客户订单示例:

在上面的客户订单示例中,如果用户向一个单体系统执行“下订单Put Order”操作,则系统将创建一个在多个数据库表上工作的本地数据库事务。 如果任何步骤失败,则事务可以回滚。 这称为ACID(原子性,一致性,隔离性,耐久性),由数据库系统保证。
现在我们分解该系统为微服务,然后我们创建了CustomerMicroservice和OrderMicroservice两个微服务,它们具有单独的数据库。 拆分之后,下面是客户使用微服务的客户订单示例:

当用户发出“PUT Order”请求时,两个微服务都将被调用, 将更改应用到他们自己的数据库中。 由于该事务现在跨多个数据库,因此被视为分布式事务。

本文探讨了微服务架构中的分布式事务问题,包括2PC和SAGA模式。2PC虽提供强一致性,但可能导致性能瓶颈和死锁。SAGA模式作为异步、反应式的解决方案,允许长期交易且无锁定,但调试复杂。SAGA模式在实际应用中,如用量计费场景,能实现最终一致性。
最低0.47元/天 解锁文章
227

被折叠的 条评论
为什么被折叠?



