Zookeeper的使用场景
分布式协调
这个其实是zk很经典的一个用法,简单来说 A系统发送个请求到MQ,然后B系统消费之后处理了,那A系统如何直到B系统的处理结果?用zk就可以实现分布式系统之间的协调工作,A系统发送请求之后可以再zk上对某个节点的值注册个监听器,一旦B系统处理完了就修改zk那个节点的值,A立马就可以收到通知
分布式锁
对某一个数据连续发出两个修改操作,两台机器同时收到了请求,但是只能一台机器先执行,另外一台机器在执行,那么此时就可以使用zk分布式锁,一个机器接收到了请求之后,先获取zk上的一把分布式锁,就是可以去创建一个znode,接着执行操作,然后另外一个机器也尝试去创建那个znode,结果发现自己创建不了,因为已经存在了,那就只能等待,等第一个机器执行完了在进行执行
配置信息管理
zk可以用做很多系统的配置信息的管理,比如kafka,storm等等很多分布式系统都会选用zk来做一些元数据,配置信息的管理,包括dubbo的注册中心也支持zk
HA高可用性
这个场景很常见,比如hdfs,yarn等很多大数据系统,都选择基于zk来开发HA高可用性机制,就是一个重要进程一般会做主备两个,主进程挂了,立马通过zk来切换备用进程