zk是什么、文件+监听

  1. zookeeper=文件系统+监听通知机制(观察者设计模式)
  2. 1zookeeper可以在他的目录节点里存储数据(每个znode能存储1M数据)
  3. 2、客户端监听他关心的目录节点,当目录节点发生变化(数据改变、节点被删除、子目录节点增加删除)时,zookerper会通知客户端
  4. --ZooKeeper中的Watcher是一次性的,即触发一次就会被取消,如果想继续Watch的话,需要客户端重新设置Watcher
  5. 1、节点的值变化监听 get -w /sanguo
  6. 2、节点的子节点变化监听 ls -w /sanguo

zk特点

  1. 1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
  2. 2)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。
  3. 3)一致性:数据一致性、数据原子性、数据执行有序性

zk应用场景

  1. 统一命名服务:类似qconf
  2. 统一配置管理:配置文件由zk存储
  3. 统一集群管理:类似zkfc管理namenode

角色

  • Leader 可以为客户端提供读写服务。
  • Follower 只能提供读服务、参与 Leader 的选举过程
  • Observer 只能提供读服务、不参与 Leader 的选举过程(因此 Observer 机器可以在不影响写性能的情况下提升集群的读性能。)

写流程(与leader通信、与follower通信)

image.png
image.png