1 概述
- Zookeeper是一个开源的分布式的,为分布式应用提供协调服务
zookeeper特点:
- 由一个leader,多个follower组成的集群;
- 集群只要有半数以上的节点存货,zookeeper集群能正常服务;
- 全局数据一致:每个server保存一份相同的数据副本,client捂脸连接到哪个server,数据都是一样的
- 数据更新原子性,一次数据更新要么成功,要么失败;
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
2 选举机制
- id最大
- 半数以上(适合奇数台服务器)
3 监听器原理
- 首先要有一个main()线程
- 在main()线程中创建zookeeper客户端,会创建两个线程,一个负责网络连接通信(connect),一个负责监听(listener)
- 通过connect线程将注册的监听事件发送给zookeeper
- 在zookeeper的注册监听器列表中将注册的监听事件添加到列表中
- zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程
- listener线程内部调用process()方法。
监听啥?常见的监听
1)监听节点数据的变化
2)监听节点增减的变化
4 写数据流程