Paxos与zookeeper
编程技术  /  houtizong 发布于 3年前   94
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(学习决议),从而将一致性算法的要求阐述如下:
算法的具体过程如下,它将一次选举过程分为了两个阶段:Prepare和Accept
Prepare阶段:
Accept阶段:
3,Paxos怎样应用到了Zookeeper?
Paxos算法的应用非常的广泛,分布式协调系统zookeeper也是基于paxos来实现的。
转载:http://www.zhouyoudao.com/paxosandzookeeper/
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接