一致性协议

参考

一致性协议

一、2PC

二阶段提交,广泛应用在数据库领域,

阶段一:提交事务请求

  1. 事务询问,协调者向所有参与者发送事务内容,询问是否可以执行提交操作,并开始等待各参与者进行响应。
  2. 执行事务,各参与者,执行事务操作,将undo和redo操作记录本机日志
  3. 参与者返回结果,成功返回yes,否则返回no

阶段二:执行事务提交

所有参与者返回yes,则执行事务提交

  1. 发送提交请求。
  2. 事务提交
  3. 返回提交结果
  4. 完成

中断事务

如果出现意外,参与者返回no,或者等待超时,则会中断事务。

  1. 发送回滚请求
  2. 回滚
  3. 返回回滚结果
  4. 中断事务

二、3PC

三阶段提交:cancommit、precommit、docommit。

三、raft 协议

raft 是分布式一致复制协议。
角色:主节点、从结点、候选结点

  1. 分布式系统刚开始,全部都是从节点,等待一个随机的竞选超时时间之后,没有收到leader发来的心跳包,就进入竞选阶段。假设A变成候选节点
  2. 结点A发送投票请求
  3. 有超过一般的节点回复,节点A从候选节点变为主节点。

日志复制

  1. 客户端的修改会被传入leader。未被提交,写入日志中。
  2. leader把修改复制到所有follower
  3. leader等大多数的follower修改后,才提交修改,
  4. leader通知follower提交修改,此时所有节点的值达成一致。

一致性协议
http://blog.mornw.com/2022/03/10/学习/consistent-proxy/
作者
朝霞换夕阳
发布于
2022年3月10日
许可协议