zookeeper 除了选举,还有什么时候会有多个提议者

如果 zookeeper 三个节点:z1,z2,z3。
a客户端连接z1
b客户端连接z2

1.是否会出现a 看到的结果与b看到的结果不一致,某一时刻。(zk是最终一致性的)
2.a客户端的操作与b客户端的操作,是不是可以认为是两个提议者
3.如果有多个提议者的话,是不是只有leader才能发送提议 ?

0

2个回答

ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader,只有leader才能提交proposer,具体算法可见Fast Paxos。

0
adofu
adofu 在用zk场景下,除了选举,什么时候会出现多个proposer?
3 年多之前 回复
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
zookeeper安装和选举说明
zookeeper安装和选举说明
Zookeeper选举机制
节点状态 LOOKING LEADING FOLLOWERING OBSERVE zxid(zookeeper事务id): zookeeper状态每次改变都会收到一个不同全局唯一的zxid,删除节点,创建节点都会使zookeeper状态改变,zxid不断递增 leader服务器选取规则: 优先检查zxid,zxid大的作为leader服务器 zxid相同就比较myid大小,myid大...
zookeeper与kafka的选举算法
kafka zookeeper 选举算法
zookeeper之选举机制
zookeeper之选举机制
zookeeper实战:master选举
依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version&gt
ZooKeeper leader选举 源码分析
Leader选举算法 在ZooKeeper中,提供了3种Leader的选举算法,分别是LeaderElection、 UDP版本的FastLeaderElection、TCP版本的FastLeaderElection,可以通过再配置文件zoo.cfg中使用electionAlg属性来指定。从3.4.0版本开始,ZooKeeper废弃了前2种算法,只保留了TCP版本的FastLeaderElecti...
zookeeper选举算法
一.ZAB协议三阶段– 发现(Discovery),即选举Leader过程– 同步(Synchronization),选举出新的Leader后,Follwer或者Observer从Leader同步最新的数据– 广播,同步完成后,就可以接收客户端新的事务请求,并进行消息广播,实现数据在集群节点的副本存储二.服务器状态1.LOOKING寻找Leader状态,当服务器处...
【zookeeper】--选举机制
eader选举的算法有三种 leaderElection/AuthFastLeaderElection/FastLeaderElection 其中FastLeaderElection 是zookeeper 默认的一种算法,本文介绍fastLeaderElection.几个必要的概念      serverid : 在配置server集群的时候,给定服务器的标识id(myid) ...
zookeeper选举机制
zookeeper运行模式 ZooKeeper服务有两种不同的运行模式。一种是"独立模式"(standalone mode),即只有一个ZooKeeper服务器。这种模式较为简单,比较适合于测试环境,甚至可以在单元测试中采用,但是不能保证高可用性和恢复性。在生产环境中的ZooKeeper通常以"复制模式"(replicated mode)运行于一个计算机集群上,这个计算机集群被称为一个"集合体"(...
Zookeeper的leader选举
假设有5台服务器,本来5号是leader,5号宕机后,剩下的转为looking状态参加选举。第一轮1,2,3,4,号的投票状态分别是rn(1,15),(2,18)(3,19)(4,14),那么在收到其他服务器的投票状态后,再次提交自己的投票状态前,和自己的投票转台进行比较是怎么比较的?是和所有的其他服务器的投票状态都比较,然后选出zxid最大的(zxid相同时,选sid大的),还是只和其中一个服务器进行比较,然后直接提交自己的新的投票状态呢?rn就是说1号服务器在第一轮投票状态肯定是它自己(1,15),那么第二轮是(3,19),还是(2,18)呢?
zookeeper源码分析--Leader选举
一、概述 zookeeper集群中,每个zookeeper节点通过投票的方式,选举出1个Leader,确定Leader后,其余参与选举的zk节点则为Follower。 二、选举过程分析 最开始,当前zk节点会投票给自己,并决定选举用的算法。 QuorumPeer.startLeaderElection: synchronized public void startLeaderElection()...
Zookeeper选举机制测试
集群分布式 三台物理机为112、113、114 112,为leader 113,为follower 114,为follower 宕机测试 比如,112宕机,关闭112服务器 检测到主节点宕机,113、114会存在一个竞争的过程 查看113 节点信息,还是follower 查看114 节点信息,显示为leader 可以看出 113、114竞争 114变成了le...
zookeeper的选举机制
zookeeper是一个分布式的协调系统协调系统。zookeeper保证了数据在ZK之间数据的事务性的一致性。其中zookeeper提供了分布式的锁服务,用于协调分布式应用程序。zookeeper的应用主要有储存元数据信息和选举机制。例如在hadoop中可以利用zookeeper选取namenode的active状态,可以在znode下储存对应的信息,来决定哪台nameNode是active状态的...
11,zookeeper 选举机制
1,每个机器都有自己的编号,也就是配置文件 myid 中的那个数字。     我们可以看看,三台机器中的 myid 分别是多少.     cd /export/servers/zookeeper-3.4.5-cdh5.14.0/dataDir     cat myid &nbsp...
zookeeper 选举算法
1.角色介绍 2.选举算法
Zookeeper实战之选举
Zookeeper实战之选举最近整理资料的时候发现了两年前自己写的一些Zookeeper的例子,今天整理了一下,放到这里,也许以后用的着。首先准备一个Zookeeper集群环境,这里使用单机模拟集群环境,并使用代码方式启动服务。Zookeeper服务这里假定启动三个Zookeeper服务做集群package my.zookeeperstudy;import org.apache.commons.io
Zookeeper 源码分析-leader选举
选举的算法可以参考:http://blog.csdn.net/xhh198781/article/details/10949697   假设配置中有两个server server.1=localhost:2888:3888 server.2=localhost:2889:3888   由前文可以,zookeeper在选举leader之前会先调用下面的代码,首先设置currentVo...
Zookeeper选举过程
假设有5台机器 znode状态:looking、following、leading 、observing(提高读取效率) 初始化: 1、服务器d为1启动,广播,没有应答,此时处于looking状态 2、服务器id为2启动,与1交换,胜出;由于选举没有超过半数,此时处于looking状态 3、服务器id为3启动根据,前面的理论,被选举为leader 4、服务器id为4、5
zookeeper选举问题
两种选举制度 1.持久-直到节点挂掉 2.轮留选举 这里我使用的是持久的方式 public class ZKConnectionUtil {     private  static CuratorFramework client ;     private static Object lock = new Object();     pri
理解zookeeper的选举机制
简介 zookeeper是一个分布式协调服务(为其他分布式程序服务) 它自身就是一个分布式服务 提供的服务:主从协调、服务器节点动态上下线感知、统一配置管理、分布式共享锁、统一名称服务…… 核心功能: 管理用户程序提交的数据 为用户程序提供数据节点监听服务 角色:leader;follower(observer) Leader作为整个ZooKeeper集群的主节点,负责响应所有对ZooKe...
【Zookeeper】——Leader选举
一、选举步骤 1、初始化Leader选举 a、根据自身的SID(服务器ID)、最新的ZXID和当前的服务器epoch来生成一个初始化投票 b、根据zoo.cfg中的配置,创建Leader选举算法 c、启动Leader选举端口的监听,等待集群中其他服务创建连接 2、注册JMX服务 3、检测当前服务器状态 4、Leader选举 选举过程:集中所有机器,互相之间相互投票,
zookeeper选举规则
zookeeper选举规则
ZooKeeper领导者选举源码分析
前言: 大家都知道领导者选举有四种算法,其中三种已经被弃用了,所以本文只针对快速领导者选举算法进行讲解,通过阐述ZooKeeper(下文简称zk)领导者选举原理及源码阅读,带大家由浅入深的了解zk领导者选举原理。 正文: 一、领导者选举原理 大家在平时生活中肯定碰到过不少关于投票选举的事情,能对于你选择造成影响的主要因素无外乎两个: 1:你跟别人的人际关系。 ...
Zookeeper运行机制与选举机制
Zookeeper的运行机制 1.在服务器开启后向zookeeper注册信息 2.通过process来注册监听,获取服务器列表 3.此时如果有服务器下线 4.下线通知 5.重新通过process来注册监听,获取服务器列表 Zookeeper的选举机制 1.集群如果宕机了一台,如果剩余节点足够再次选举并运行,则会发生选举,如果剩余节点不够,则无法启动集群,需要重启启动。 2.选举机制中的lead...
Zookeeper的默认选举
zookeeper中默认的选举模式是通过类FastLeaderElection类来实现的,在QuorumPeer类的启动方法start()方法中,通过startLeaderElection()方法首先生成一开始自己的选票,首先会把投票的leader选为自己的id,同时带上自己的zxid,以及当前的epoch轮数,同时上者也是构成一张选票的三个元素。之后根据 createElectionAlgori...
zookeeper leader选举源码实现
1.如果要查看zookeeper源码,可以以以下的方式启动 配置启动类:org.apache.zookeeper.server.quorum.QuorumPeerMain 配置一个启动参数:配置文件的地址 注意配置文件需要写清楚集群 # The number of milliseconds of each tick tickTime=2000 # The number of ticks t
Zookeeper选举原理
Zookeeper选举原理 作为一个分布式应用程序协调服务,在大型网站中,其本身也是集群部署的,安装zookeeper的时候最好是单数节点,因为要选举。Zookeeper的leader节点是集群工作的核心,用来更新并保证leader和server具有相同的系统状态,Follower服务器是Leader的跟随者,用于接收客户端的请求并向客户...
ZooKeeper选举机制
1、ZooKeeper选举机制 ZooKeeper Server leader 只有1个,负责管理集群。 follower 多个,执行leader指令。leader挂掉,重新选举leader。 Leader选举过程 a)首先在/节点下创建ephemeral(临时的)目录/elect。 b)每个zk服务器都在给目录下创建自己对应的节点,例    如/../zk_1,类型或者为s
大数据培训:Zookeeper集群管理与选举
1.集群机器监控 这通常用于那种对集群中机器状态,机器在线率有较高要求的场景,能够快速对集群中机器变化作出响应。这样的场景中,往往有一个监控系统,实时检测集群机器是否存活。过去的做法通常是:监控系统通过某种手段(比如ping)定时检测每个机器,或者每个机器自己定时向监控系统汇报“我还活着”。 这种做法可行,但是存在两个比较明显的问题: 集群中机器有变动的时候,牵连修改的东西比较多。 有一定的...
理解zookeeper选举机制
原文转自:https://www.cnblogs.com/ASPNET2008/p/6421571.html https://blog.csdn.net/cnh294141800/article/details/52959028/ http://blog.itpub.net/30109892/viewspace-2089610...
zookeeper leader选举 源码分析
QuorumCnxManager:网络IO每台服务器启动的时候,都会启动一个QuorumCnxManager,负责各台服务器之间的leader选举过程中的网络通信。消息队列QuorumCnxManager这个类内部维护一系列的队列,用于保存接收到的,待发送的消息,以及消息的发送器。除了接收队列外,这里提到的所有队列都按SID分组形成队列集合。/*消息接收队列只有一个*/ public final A
ZooKeeper 选举过程
  https://www.tutorialspoint.com/zookeeper/zookeeper_leader_election.htm   1 .All the nodes create a sequential, ephemeral znode with the same path, /app/leader_election/guid_.   2. ZooKeeper e...
Zookeeper搭建及选举验证
1、下载zookeeper https://pan.baidu.com/s/18Nbotzm_5fh4SGVMqo7r8w h4eg   2、上传zookeeper到服务器,并解压 tar -xvf zookeeper-3.4.10   3、将解压后的zookeeper-3.4.10备份两个 cp zookeeper-3.4.10 zookeeper-3.4.10-bak1 -r ...
zookeeper中的选举机制
zookeeper中的选举机制 选举机制发生的时间 集群启动时 leader节点崩溃时 选举算法 zookeeper提供了三种方式: LeaderElection AuthFastLeaderElection FastLeaderElection 默认的算法是FastLeaderElection,所以主要分析它的选举机制。 选举中的概念 ...
zookeeper选举机制图
zookeeper选举机制图,内讲述了zookeeper是如何选举出leader、fllower的
【分布式】Zookeeper的Leader选举-选举过程介绍
【分布式】Zookeeper的Leader选举-选举过程介绍 选举开始,服务器会各自为自己投票,在投票完成后,会将投票信息发送给集群中的所有服务器(观察者服务器不参与选举)。 选票由两部分组成:服务器唯一标识myid和事务编号zxid,即(myid,xzid)。 zxid越大说明数据越新,在选择算法中的权重越大。 myid越大,在选择算法中的权重越大。 比较选票时会先比较zxid,zxi...
Zookeeper学习(十三):Zookeeper的选举算法
1.ZAB(原子广播协议) 2.服务器角色 3.服务器状态 4.集群通信 5.选举触发的时机 6.影响成为Leader的因素 7.初次启动
Zookeeper源码分析(五)-Zookeeper选举实例流程
之前源码已经讲述完了,现在准备根据例子记录一下整个流程,加入我们在zoo.cfg里配置了四台服务器,分别是server.1=zoo1:2888:3888:participant server.2=zoo2:2888:3888:observer server.3=zoo3:2888:3888:participant server.3=zoo4:2888:3888:participant首先我们
zookeeper 容错,脑裂 ,选举
一.选择机制中的概念 服务器ID 比如有三台服务器,编号分别是1,2,3。 编号越大在选择算法中的权重越大。 数据ID 服务器中存放的最大数据ID. 值越大说明数据越新,在选举算法中数据越新权重越大。 逻辑时钟 或者叫投票的次数,同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加,然后与接收到的其它服务器返回的投票信息中的数值相比,根据不同的值做出不同的判断...
简单讲解Zookeeper的选举机制
都知道zookeeper集群中有一个leader和多个followers,刚学习的时候还非常疑惑到底是怎么定义leader和follower,后来了解了他的选举机制后才知道其实思路还是很简单的: 1、首先要知道zookeeper的半数机制,就是集群中只要有半数以上的节点存活,这个集群就能正常服务,比如说一个集群中有6台服务器,但其中只有4台是能够正常提供服务的,那这个集群就能正常服务了,反之若刚...