zookeeper源码学习-读取配置文件
parseDynamicConfig 读取配置文件,返回QuorumVerifier,包含所有节点的信息 对节点的配置,需要是用server.开头,或者是version开头 拿到QV之后,根据参与者的数量,做一些校验 如果校验通过,在返回的QV里面,包含所有的节点的信息,方便后续进行选举时候的连接 里面有两个核心的东西…
Tag
15 posts · All tags
parseDynamicConfig 读取配置文件,返回QuorumVerifier,包含所有节点的信息 对节点的配置,需要是用server.开头,或者是version开头 拿到QV之后,根据参与者的数量,做一些校验 如果校验通过,在返回的QV里面,包含所有的节点的信息,方便后续进行选举时候的连接 里面有两个核心的东西…
该类主要的功能是记录节点ack的信息,并且判断是否超过了半数等信息 这个东西是在FastleaderElection中通过getVoteTracker获取到的 关系图 变量 只有一个变量,节点验证器的ack集合,所以重点是这个qvAcksetPairs QuorumVerifierAcksetPair 用来存储验证器,…
原本的代码很长,只记录了个别在看代码时候有用的一些 里面会启动两个线程,一个发送线程QuorumConnectionReqThread还有一个接受线程QuorumConnectionReceiverThread。 在zk启动的时候,会在QuorumConfig里面读到所有的节点信息,然后生成一个Quorum验证器,这时…
负责选举的相关 选举流程 1. 先判断节点当前的状态,以及是否需要停止 2. 从接收队列里面取出来一个投票,然后校验是否合法 3. 如果选举周期不一致,比较目标投票以及自己投票的信息, 然后选择更新自身的投票信息然后通知别的节点 4. 如果选举周期一致,将选票信息存入到recvset中,以接收到的节点的id为key,根…
对象属性定义
zk里面网络相关的代码,没细看
zxid计算的相关,其中高32位存储Epoch的id,低32位存储事务的计数器
Quorum的验证器,Quorum是一种分布式的机制,用来定义在分布式系统中,某个请求是否能够被确认。 ZK默认的实现是QuorumMaj,也就是超过半数投票者的时候,认为投票通过
- 表示节点的状态 状态 - UNKNOWNSTATE : 未知 - LOOKINGSTATE:查找 leader - LEADINGSTATE:leader状态 - FOLLOWINGSTATE:跟随状态 - OBSERVINGSTATE:观察状态
- 分布式节点的相关代码 基础变量