回顾分布式事务的解决方案
什么是分布式事务
分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器「分别位于不同的分布式系统的不同节点之上」。
一个大的操作由N多的小的操作共同完成。而这些小的操作又分布在不同的服务上。针对于这些操作,「要么全部成功执行,要么全部不执行」,核心就是要【保证不同服务状态结果的一致性】
分布式理论
1、CAP定理
在一个分布式系统中,以下三点特性无法同时满足:
一致性(C):
在分布式系统中的所有数据备份,「在同一时刻是否拥有同样的值」。(等同于所有节点访问同一份最新的数据副本)
可用性(A):
在集群中一部分节点「故障」后,集群整体「是否还能响应」客户端的读写请求。(对数据更新具备高可用性)
分区容错性(P):
即使出现「单个组件无法可用,操作依然可以完成」。
具体地讲在分布式系统中,在任何数据库设计中,一个Web应用「至多只能同时支持上面的两个属性」。显然,任何横向扩展策略都要依赖于数据分区。因此,设计人员必须在一致性与可用性之间做出选择。
2、BASE理论
在分布式系统中,我们往往追求的是可用性,它的重要程序比一致性要高,那么如何实现高可用性呢?
前人已经给我们提出来了另外一个理论,就是BASE理论,它是用来对CAP定理进行进一步扩充的。BASE理论指的是:
- 「Basically Available(基本可用)」
- 「Soft state(软状态)」
- 「Eventually consistent(最终一致性)」
BASE理论是对CAP中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。
分布式事务解决方案
1、两阶段提交(2PC)
2、三阶段提交(3PC)
3、补偿事务(TCC)
4、本地消息表
5、消息事务
6、最大努力通知
7、Sagas事务模式
技术分享某种程度上,是让作者和读者在技术认知上彼此交流与碰撞,感兴趣的欢迎关注公众号“金仙儿追鹿仙”