11 Paxos是一种提高分布式系统容错性的一致性算法。

Paxos是一种提高分布式系统容错性的一致性算法。


推荐《从 Paxos 到 ZooKeeper 分布式一致性原理与实践》书,概述讲述的更详细一点,

1、问题描述

一致性算法要保证如下几点;

  • 在被提出的提案中,只有一个会被选定。
  • 没有提案被提出时,不会有提案被选定。
  • 当某提案被选定后,进程应该可以获取被选定的提案信息。
  • 安全性需求:
  • 只有被提出的提案才能被选定。
  • 只能有一个值被选定。
  • 如果进程认为某个提案被选定了,那么该提案必须是真的被选定那个。

2、提案的选定

当提案被多个Acceptor通过后,我们就认为提案被选定。前提是:每个Acceptor最多只能批准一个提案。

3、Paxos一致性算法的条件

  1. 一个Acceptor必须批准它收到的第一个提案。([编号,Value])
  2. 如果编号为M0、Value值为V0的提案被选定了,那么所有比编号M0更高的,且被选中的提案,其Value值必须也是V0.(简单来说:就是如果提案被选中,编号M必须最大。)
  • a:如果编号为M0,Value值为V0的提案被选定了,那么所有比编号M0更高的,且被Acceptor批准的提案,其Value值必须也是V0。
  • b:如果一个提案[M0,V0]被选定后,那么之后任何Proposer产生的编号更高的提案,其Value值都为V0。
上一篇:【原创】在WPF窗体中动态添加控件并访问这些控件


下一篇:大数据集群完全分布式部署实操篇:HDFS2.9.2、HBASE2.2.6、YARN2.9.2、SPARK2.4.7,ZOOKEEPER3.6.2