关于Zookeeper

选举机制:

  1. 集群中半数以上节点存活,集群可用,即zookeeper适合安装奇数台服务器

  2. zookeeper在配置文件中没有主从进程的概念,但是工作时,会通过选举选出来一个Leader和其它的Follower,内部选举机制临时产生,不固定(根据节点启动的先后顺序和myid中的值的大小)

  3. 栗子:

    三台节点,id为1-3,顺序启动

    1启动之后,由于只有一台服务器,选举处于looking状态

    2启动之后,与1通信,id为2胜出,1 和 2 都投给自己一票和给id大的一票,即现在2有两票

    3启动之后,由于只有三台机器,半数已达到,即使3  的id大于2,但是此时Leader仍是2,而非3节点

Zookeeper的常用命令:

  ls / : 查看当前znode中所包含的内容

  ls2 /  : 查看当前节点详细数据

  create -s/-e :创建 -s:含有序列节点  -e:临时节点

  get /节点名 :获得节点的值

  rmr : 递归删除节点

  set:设置节点具体的值

  stat:查看节点的状态

  delete:删除节点

监听器原理:

  1. 创建一个main线程

  2. 在main线程中创建zookeeper客户端,这时就会创建两个线程:connect(网络连接通信);listener(监听)

  3. 通过connect线程将注册的监听事件发送给zookeeper

  4. 在zookeeper的注册监听器列表中将注册的监听事件添加到列表中

  5. zookeeper监听到数据变化,将信息发送给listener线程

  6. listener线程内部调用了process方法

常见监听:

  - 节点数据的变化

  -    子节点增减的变化

原文地址:https://www.cnblogs.com/joey-413/p/14100137.html