分布式事物2pc,3pc,TCC,消息事务(rocketmq),最大努力通知和自定义本地消息及seata的at saga 1
分布式事务分为:刚性事务(强一致性)和柔性事务(弱一致性)
1:2PC(Two-phase commit protocol),中⽂叫⼆阶段提交。 ⼆阶段提交是⼀种强⼀致性设计,2PC 引 ⼊⼀个事务协调者的⻆⾊来协调管理各参与者(也可称之为各本地资源)的提交和回滚,⼆阶段分别指 的是准备(投票)和提交两个阶段。
会出现:,同步阻塞,单点故障,脑裂
https://zhuanlan.zhihu.com/p/183753774
https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/distribution/2PCand3PC.md
2PC如何解决故障问题?
两阶段提交协议的参与者使用协议状态的日志记录。协议的恢复过程使用日志记录,这些记录通常生成速度很慢,但在失败后仍然存在。存在许多协议变体,它们主要在日志策略和恢复机制方面有所不同。尽管恢复过程通常很少使用,但由于协议要考虑和支持许多可能的故障场景,因此它构成了协议的一个重要部分。
协议的工作方式如下:一个节点是指定的协调器,它是主站点,网络中的其余节点被指定为参与者。协议假定每个节点上都有一个稳定的存储,有一个提前写入日志,不会永远崩溃,提前写入日志中的数据不会在崩溃中丢失或损坏,并且任何两个节点都可以相互通信。最后一个假设没有太多限制,因为网络通信通常可以被重新路由。前两个假设要强大得多;如果一个节点被完全破坏,那么数据可能会丢失。
在到达事务的最后一步之后,协调器将启动该协议。然后,参与者根据是否在参与者处成功处理了事务,使用协议消息或中止消息进行响应。