欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Zookeeper知识点

程序员文章站 2022-06-08 20:14:34
Zookeeper是一个分布式协调服务 Zookeeper服务器的角色 Leader: 所有的写操作必须要经过Leader完成,在广播给其它服务器。心跳检测。集群中只有一个Leader。 Follower: 接收客户端连接,处理客户端的读请求,并将写请求转发给Leader处理。参与投票。 Obser ......

zookeeper是一个分布式协调服务

Zookeeper知识点

zookeeper服务器的角色

  • leader: 所有的写操作必须要经过leader完成,在广播给其它服务器。心跳检测。集群中只有一个leader。
  • follower: 接收客户端连接,处理客户端的读请求,并将写请求转发给leader处理。参与投票。
  • observer: 与follower类似,但不参与投票。

zookeeper服务器的状态

  • looking: 竞选状态。该状态下服务器认为集群中没有leader,会发起leader选举。
  • following: 跟随者状态。表明当前服务器角色是follwer。
  • leading: 领导者状态。表明当前服务器角色是leader。
  • observing: 表明当前服务器角色是observer。

术语介绍

myid

myid就是服务器的id。在配置文件中“server.id=host:port:port”,其中“server.”后面的就是myid。例如:

ticktime=2000
datadir=/var/lib/zookeeper/
clientport=2181
initlimit=5
synclimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888

zxid

类似关系型数据库中的事务id,用于标识一次更新操作。zxid是单调递增的。zxid越大,代表server对znode的操作越新。

逻辑时钟

每个服务器会维护一个自增的整数,名为逻辑时钟(又叫投票次数),它表示这是该服务器发起的第多少轮投票。同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加,然后与接收到的其它服务器返回的投票信息中的数值相比,根据不同的值做出不同的判断。

两种情况需要进行leader选举

  1. 服务器初始化启动
  2. 服务器运行期间无法和leader保持连接,leader节点崩溃,逻辑时钟崩溃

一般建议选取奇数个节点进行搭建分布式服务器集群

Zookeeper知识点

 

选举

https://zookeeper.apache.org/doc/current/recipes.html#sc_leaderelection

https://www.cnblogs.com/aspnet2008/p/6421571.html