echo conf | nc ip2181
echo ruok | nc ip 2181
echo stat | nc ip 2181
主要的应用场景
配置管理 --- 解决配置一致性问题 HA问题 --- 解决服务器的故障问题 主从架构 --- 动态master选举 集群管理 --- 实现集群内机器的管控 负载均衡 --- 解决业务的负载均衡 分布式锁 --- 实现分布式锁 排它锁,读写锁, 分布式队列 --- 实现分布式队列 同步队列 先进先出队列其实就是用顺序节点来控制时序,用状态节点(start,finish)的创建与销毁来做同步。
监听某一个状态节点,监听孩子节点。。。。。
具体实现:
配置管理:监听配置,如果有更新,会得到通知。主从选举:监听孩子节点,孩子节点都是顺序节点,最小号的孩子节点是主,其余节点对父节点设置watch。热备问题:监听集群管理:监控集群中的数量,如果孩子的顺序id=x了,就创建start节点,其余节点监控start节点是否创建,如果创建了,就开始,或者做其它操作。互斥锁:如果节点创建,则不能持有锁,再次创建同样的节点,将会失败。读写锁:锁是顺序的,但是子节点的名字不一样,r,w,每次检查节点负载均衡:需要自己设置负载策略。 例如kafka生产者负载均衡:获取partition下的节点后,排成一个有序的分区列表,默认的策略是发送是轮询,从头到晚反复的选择一个分区来发送消息。kafka消费者负载均衡:每个分区针对一个group只挂载一个消费者,如果一个消费者所属的group在想要消费的分区下已经有子节点,则不能再消费这个分区。 分布式队列 同步队列:控制数量 FIFO队列:由顺序节点控制时序 入队:创建顺序节点 出队:得到父节点的所有孩子,如果自己是最小的孩子则开始消费,删除节点。