分布式事务
2022-3-3 Mr Chang 事务
1.什么是分布式事务:
事务就是多个原子操作的组合,他们就像是一条绳上的蚂蚱,要么一起生,要么一起死,在事务中,如果其中一个操作执行失败,那么剩下的操作都不再执行,而之前执行过的操作也需要回滚。至于分布式事务,顾名思义就是包含对分布式系统中不同节点的操作的事务。
2.分布式一致性协议:
(1)两阶段提交协议(2PC):
在分布式事务中,一个事务贯穿多个节点,每个节点仅仅知道自己操作的结果,但是并不知道其他节点的操作结果。为了保证事务的一致性,就需要一个统一的协调者,每个节点把操作的结果告知协调者,为了保证事务的一致性,就需要一个统一的协调者,每个节点把操作的结果告知协调者,协调者再根据操作结果再通知各节点是将操作提交取消操作。
两阶段提交协议有准备阶段和提交阶段两个阶段,可以保证强一致性,但是复杂,不够灵活,而且还有以下缺点:阻塞(每个节点必须收到响应才会继续向下执行,否则则一直处于阻塞状态,占用资源),节点故障(如果在执行事务的过程中有节点发生故障,则协调者只能等待,会阻塞其他节点资源,而如果发生这种情况后,协调者也发生故障,新选取的协调者无法处理这种情况)
(2) 三阶段提交协议(3PC)
三阶段提交协议是两阶段提交协议的改进,目的是解决两阶段的缺点。它加入了超时机制来解决两阶段协议的阻塞问题,并在准备阶段增加了询问阶段(协调者询问节点是否可以提交,节点只需要返回是或否即可)。如果发生响应超时的问题,则可以回滚,不会使节点进入阻塞状态等待。
三阶段提交协议的缺点是需要更多的通讯次数,实现比较复杂,两阶段提交协议和三阶段提交协议都是强一致性的分布式事务解决方案。
3.分布式事务最终一致性解决方案
(1).可靠消息服务:
发表评论: