【算法篇】CAP、Paxos、Raft-二、Paxos 算法

时间:2025-02-15 10:09:08

Paxos算法的目的是为了解决分布式环境下一致性的问题

多个节点并发操作数据,如何保证在读写过程中数据的一致性,并且解决方案要能适应分布式环境下的不可靠性。

1、Paxos两个组件

  • Proposer:提议发起者,处理客户端请求,将客户端的请求发送到集群中,以便决定这个值是否可以被批准
  • Acceptor:提议批准者,负责处理接收到的提议,他们的回复就是一次投票。会存储一些状态来决定是否接收一个值

2、Paxos 两个原则

  • 安全原则:保证不能做错的事
    • 针对某个实例的表决只能有一个值被批准,不能出现一个被批准的值被另一个值覆盖的情况
    • 每个节点只能学习到已经被批准的值,不能学习没有被批准的值
  • 存活原则:只要有多数服务器存活并且彼此间可以通信,最终都要做到的下列事情
    • 最终会批准某个被提议的值
    • 一个值被批准了,其他服务器最终会学习到这个值