本章开始学习下Curator一些典型的使用场景,可以为实际项目提供参考。
事件监听
Zookeeper原声支持通过注册Watcher来进行事件监听,但使用起来不是特别方便,需要反复注册Watcher,比较繁琐。Curator引入了Cache来实现对Zookeeper服务端事件的监听,Cache是Curator中对事件监听的包装,并且自动反复注册监听。Cache分为两类监听类型:节点监听和子节点监听。
NodeCache
NodeCache用于监听指定Zookeeper数据节点本身的变化。
PathChildrenCache
PathChildrenCache用于监听指定Zookeeper数据节点的子节点变化情况,无法对二级子节点进行事件监听。
Master选举
在分布式系统中,经常会碰到这样的场景:对于一个复杂的任务,仅需要从集群中选举出一台进行处理即可。诸如此类的分布式问题,我们统称为Master选举,借助Zookeeper可以轻松实现。其思路为:选在一个根节点,例如/master_select,多台机器同时想该节点创建一个子节点/master_select/lock,利用Zookeeper的特性,最终最有一台机器能够创建成功,那台机器就成为Master。