1,什么是Paxos算法?

Paxos算法是分布式计算领域中一个非常重要的算法,主要解决分布式系统如何就某个值(决议)达成一致的问题。一个典型的场景是分布式数据库的一致问题:如果分布式数据库的各个节点初始状态一致,又能执行相同的操作序列,那么最后能达到一个一致的状态。但是如何保证在每个节点上执行相同的命令序列呢?这就需要在每条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。Paxos算法便是这样一种一致性算法,它由大牛Lamport于1990年提出,在Lamport的论文中,他虚拟了一个叫“Paxos”的城邦并以讲故事的方式阐述算法,因此叫做Paxos算法。

Paxos是一个较为复杂的算法,在网上也有很多解析,具体可以看维基百科上的论述(http://zh.wikipedia.org/zh-cn/Paxos%E7%AE%97%E6%B3%95)。

2,Paxos算法的具体内容是什么?

根据前面讲到的一致性算法需要解决的问题,Paxos需要保证:一次选举(分布式节点对决议进行投票并批准的过程)中只批准一个决议(value),只有被提出(proposed)的决议才能被批准,只有被批准的决议才能被学习(即可以执行或保存这个决定的内容)。为便于描述选举过程,Paxos为参与者设定了3个角色:proposer(提出决议),acceptor(批准决议)和learner(学习决议),从而将一致性算法的要求阐述如下:

  1. 决议(value)只有在被proposers提出后才能批准;
  2. 在一次Paxos算法的执行过程中,只会批准一个value;
  3. learners只能获取到被批准的value;

算法的具体过程如下,它将一次选举过程分为了两个阶段:Prepare和Accept

Prepare阶段

  1. proposer选择一个提案(表示未被批准的决议)编号n,将prepare请求发给acceptor中的一个多数派;
  2. 如果acceptor发现n是它已回复的请求中编号最大的,它会将上次接受的提案回复给proposer,并且承诺以后不会回复编号小于n的提案

Accept阶段

  1. 如果proposer接收到了多数派的回应,它发送一个accept消息到acceptor的多数派,包括提案编号n和value
  2. 在不违背自己向其它proposer的承诺前提下,acceptor收到accept请求后即接受这个请求;

3,Paxos怎样应用到了Zookeeper?

Paxos算法的应用非常的广泛,分布式协调系统zookeeper也是基于paxos来实现的。

  1. leader选举。zookeeper在leader选举时采用了paxos算法(主要是fast paxos,Lamport于2005年提出的快速paxos);
  2. 一致性复制。zookeeper使用了一种称为zab(zookeeper atomic broadcast)的协议作为一致性复制的核心,作者认为是一种新的算法,但实际上也可以认为是Paxos的一种简化和优化

http://www.zhouyoudao.com/paxosandzookeeper/

转载于:https://www.cnblogs.com/chenying99/p/4105451.html

Paxos与zookeeper相关推荐

  1. 《从Paxos到zookeeper分布式一致性原理与实践》笔记

    <从Paxos到zookeeper分布式一致性原理与实践>笔记 文章目录 <从Paxos到zookeeper分布式一致性原理与实践>笔记 一.概念 二.一致性协调 2.1 2P ...

  2. 《从Paxos到zookeeper分布式一致性原理与实践》

    <从Paxos到zookeeper分布式一致性原理与实践> 一.概念 ACID: Automaticy.consistency.isolation. Durability CAP: con ...

  3. 《从Paxos到ZooKeeper:分布式一致性理论与实践》上市了

    从出版社联系到如今出版,将近一年半时间,现在终于上市了,希望对有需要的同行朋友有帮助.读者朋友有任何关于本书的问题或建议,都可以通过以下途径来进行反馈: 论坛:http://dwz.cn/AGFzp  ...

  4. 从Paxos到Zookeeper:分布式一致性原理与实践

    网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...

  5. [201502][从 Paxos 到 ZooKeeper][分布式一致性原理与实践][倪超][著]

    [201502][从 Paxos 到 ZooKeeper][分布式一致性原理与实践][倪超][著] http://zookeeper.apache.org 第 1 章 分布式架构 1.1 从集中式到分 ...

  6. 《从Paxos到ZooKeeper 分布式一致性原理与实践》读书笔记

    一.分布式架构 1.分布式特点 分布性 对等性.分布式系统中的所有计算机节点都是对等的 并发性.多个节点并发的操作一些共享的资源 缺乏全局时钟.节点之间通过消息传递进行通信和协调,因为缺乏全局时钟,很 ...

  7. 《从Paxos到Zookeeper 分布式一致性原理与实践》

    第1章 分布式架构 1.1 从集中式到分布式 1.1.1 集中式的特点 集中式的特点:部署结构简单(因为基于底层性能卓越的大型主机,不需考虑对服务多个节点的部署,也就不用考虑多个节点之间分布式协调问题 ...

  8. 分布式一致性算法Paxos,Zookeeper的ZAB协议,Raft算法

    Paxos算法: Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现,Google的分布式锁系统Chubby作为Paxos实现曾经遭遇到很多坑. 阶段一: 1.Proposer选择一 ...

  9. 《从paxos到zookeeper》学习笔记(一)

    1.概述 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件 ...

最新文章

  1. 【如何快速的开发一个完整的iOS直播app】(采集篇)
  2. Linux下rz,sz与ssh的配合使用,实现文件传输
  3. wps 项目进度_平安科技软件+金山WPS测试面试题
  4. Oracle 表的创建 及相关參数
  5. matlab图像去毛刺_信号去毛刺,去零漂
  6. Java 9,Jigsaw,JPMS和模块:个人探索
  7. Hibernate知识问答
  8. python中浮点数类型_Python基本数据类型之浮点型
  9. C++ 刷算法题笔记
  10. 关于Spring.net+NHibernate的事务控制
  11. STM32跑html协议,STM32移植SBUS协议
  12. joystick手柄驱动安卓_万能手柄驱动(PPJOY) 官方版 (图文)
  13. 郝斌数据结构-线性表之单链表程序(C语言版)
  14. 使用 ngrok 进行内网穿透
  15. 视频网站存储在服务器,网络视频存储服务器
  16. 使用VMware虚拟机搭建爱快路由器PPPoE服务器环境
  17. linux广播命令,分享|在 Linux 终端收听广播
  18. 陈冠希传 转载,奇文共欣赏
  19. 音乐艺考生的视唱练耳小技巧
  20. ubuntu启动后一直黑屏

热门文章

  1. python批量下载文件-python使用selenium实现批量文件下载
  2. 上海python培训班-上海哪家python培训班比较靠谱?
  3. 零基础python从入门到精通 pdf-跟老齐学Python:从入门到精通PDF电子版
  4. python中and与or的执行顺序-python之执行顺序随记
  5. python中国-一个身居中国的法国程序员谈Python与PHP
  6. python request-python3的request用法实例
  7. python画散点图类型-绘制python中的线和散点图
  8. python编程入门课 视频教程-Python编程零基础入门课
  9. CNN 模型的参数(parameters)数量和浮点运算数量(FLOPs)是怎么计算的
  10. python opencv按照一定间隔保存视频帧