目录
Zookeeper的临时节点和watch机制来实现注册和发现,Zookeeper中的数据都是存在内存中的,底层采用nio多线程模型,Zookeeper是CP的注重的是一致性,集群数据不一致时不适用,这种情况下Eureka、Nacos来作为注册中心更合适。zookeeper主要提供的功能有分布式协调、分布式锁、元数据/配置信息管理、HA高可用性。
分布式协调
A系统发送个请求到mq,然后B系统消息消费之后处理了,那A系统如何知道B系统的处理结果?A系统发送请求之后在zookeeper上对某个节点的值注册个监听器,一旦B系统处理完了就修改zookeeper那个节点的值,A系统立马就可以收到通知。
分布式锁
对某一个数据连续发出两个修改操作,两台机器同时收到了请求,但是只能一台机器先执行完另外一个机器再执行。此时可以使用zookeeper分布式锁,一个机器接收到了请求之后先获取zookeeper上的一把分布式锁,创建一个znode后执行操作,另外一个机器也尝试去创建那个znode,结果发现自己创建不了,因为被别人创建了,那只能等着,等第一个机器执行完了自己再执行。