zookeeper的使用场景
分布式协调、分布式锁、元数据/配置信息管理、HA高可用性
分布式协调
A系统发送个请求到mq,然后B系统消息消费之后处理了,那A系统如何知道B系统的处理结果?A系统发送请求之后在zookeeper上对某个节点的值注册个监听器,一旦B系统处理完了就修改zookeeper那个节点的值,A系统立马就可以收到通知。
分布式锁
对某一个数据连续发出两个修改操作,两台机器同时收到了请求,但是只能一台机器先执行完另外一个机器再执行。此时可以使用zookeeper分布式锁,一个机器接收到了请求之后先获取 zookeeper上的一把分布式锁,创建一个znode后执行操作,另外一个机器也尝试去创建那个znode,结果发现自己创建不了,因为被别人创建了,那只能等着,等第一个机器执行完了自己再执行。
元数据/配置信息管理
zookeeper可以用作很多系统的配置信息的管理,比如kafka、storm等等很多分布式系统都会选用 zookeeper来做一些元数据、配置信息的管理,包括dubbo注册中心也支持zookeeper