2PC

主要流程

这里写图片描述

阶段一:事务执行

  协调者向所有参与者发出事务执行请求,并等待所有参与者的ACK响应;

阶段二:提交或回滚

  如果协调者收到了所有参与者的ACK响应,并且为Yes,则参与者向所有参与者发送commit请求,且自身也提交事务;否则,发送rollback请求,自身回滚事务;

问题分析

阶段一问题

  • 数据一致性:不会造成数据不一致,事务还没有提交;
  • 性能问题:需要等待所有参与者的ACK响应;

阶段二问题

  • 数据一致性:任意一个节点宕机都会造成数据不一致;

ZAB解决方案

  1. 性能问题:过半机制;
  2. 数据一致性问题:增加数据同步阶段;

参考:

  1. https://my.oschina.net/andylucc/blog/867309
  2. http://www.hollischuang.com/archives/1580

猜你喜欢

转载自blog.csdn.net/yangguosb/article/details/80269393
2PC
今日推荐