1、分布式协调
如何用zk来做分布式协调呢?两个系统异步通信,A系统发送一个消息到B系统,中间可以用mq或者多线程。B系统的执行结果同时需要更新A系统的数据。那么用zk实现的话,在A系统发送请求之后可以在zk上对某个节点注册个监听器,一旦B系统处理完就修改那个节点的值,A立马就可以收到通知,完美解决。
2、分布式锁
对于某个进程连续发出的两个修改操作,两台机器同时收到了请求,但是只有一台机器先执行,另一台机器后执行,一个机器收到请求先获取zk上的一把分布式锁,就是可以去创建一个znode,接着执行操作。然后另外一个机器也去尝试获取去创建那个znode,结果发现创建不了,因为被别人创建了,那只有等着,等第一个机器执行完再执行。
3、元数据/配置信息管理
zk可以用作许多系统配置信息的管理,比如Kafka、storm等很火粉不是你系统都会选用zk,来做一些元数据、配置信息的管理。
4、HA高可用性
HA的高可用的主从进程可以通过zk的通知机制。
网友评论