zookeeper的应用场景
1.分布式协调服务
2.分布式锁
3.元数据的配置管理
分布式协调服务
case:当A向Mq里面写入消息,B从mq里面消费消息进行业务处理。
A怎么知道B消费逻辑执行成功了呢?
do:天生的监听机制watch
use:可以在zk里面,设置一个监听器,当B消费成功执行完成,Zk监听到,然后,通知A系统。
分布式锁
case:当分布式应用,多台机器需要竞争执行同一段逻辑,或并发访问共享数据。作为分布式锁
do:通过创建一个临时节点,节点的value是获取锁的机器的标识。A机器进行访问,尝试获取节点,发现节点没有,创建临时节点,绑定自己机器。当B进来时,尝试获取节点,发现节点存在,再进一步判断节点的值是不是自己,不是CAS等待。当A执行完,删除临时节点,释放锁
元数据的配置管理
case:作为dubbo远程调用服务rpc框架的,存储服务,管理协调服务的配置管理
do:将通过dubbo进行远程服务调用服务,再zk里面进行注册,进行信息配置,zk进行管理。作为注册中心
zk的选主
1.由于zk是主机负责写的,从机只读。主机挂了之后,写请求就不能处理。就会暂时堆外不提供给服务。
ZAB选主
1.