Zookeeper功能说明及工作原理

Zookeeper是一款分布式应用程序协调服务,提供命名服务、配置管理、集群管理、分布式锁及队列管理等功能。其核心机制为原子广播,确保各服务器间的同步,通过Zab协议的恢复模式和广播模式实现状态同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zookeeper是一个分布式应用程序协调服务;它提供的功能有:命名服务、配置管理、集群管理、分布式锁、队列管理。


命名服务zookeeper的文件系统里创建一个目录可与下游程序约定好路径,通过路径即能互相探索发现。

 

配置管理在做应用服务器集群的时候;可以将项目修改的配置文件全部放到zookeeper上面,保存到zookeeper的某个目录节点中,然后相关程序对这个目录节点进行监听,一有配置文件发送变化,那么每个应用程序都将收到通知,然后从zk里面获取最新配置文件同步到应用服务器上。

 

集群管理在应用服务器集群的时候;是否有集群节点加入或退出的时候,zookeeper可以感知并通知其它应用服务器知晓当前各个集群节点的在线状态。所有机器约定在父目录下创建临时目录节点,然后监听父目录节点的子节点变化消息。一旦有机器挂掉,该机器与 zookeeper的连接断开,其所创建的临时目录节点被删除,所有其他机器都收到通知:某个兄弟目录被删除。

 

分布式锁zookeeper上的一个znode看作是一把锁,通过createznode的方式来实现。所有客户端都去创建 /distribute_lock 节点,最终成功创建的那个客户端也即拥有了这把锁。用完删除掉自己创建的distribute_lock 节点就释放出锁。(关于分布式锁,可以使用redissetnx命令来实现也是一种方法)

 

队列管理第一种同步队列:当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达(在约定目录下创建临时目录节点,监听节点数目是否是要求的数目)。第二种队列按照 FIFO 方式进行入队和出队操作。

Zookeeper工作原理

Zookeeper 的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和 leader的状态同步以后,恢复模式就结束了。状态同步保证了leaderServer具有相同的系统状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值