博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zookeeper
阅读量:5838 次
发布时间:2019-06-18

本文共 959 字,大约阅读时间需要 3 分钟。

hot3.png

1.功能说明

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

 

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

 

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

 

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

 

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

 

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

 

2.工作原理

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

转载于:https://my.oschina.net/u/3905833/blog/2353159

你可能感兴趣的文章
Win32线程——优先权
查看>>
SQL优化基础 使用索引(一个小例子)
查看>>
深入浅出JMS(二)----ActiveMQ简单介绍以及安装
查看>>
【Excle数据透视表】如何快速选取所有标签并标注黄色底纹
查看>>
<转>Boost库之asio io_service以及run、run_one、poll、poll_one区别
查看>>
java中的内部类总结
查看>>
Day15 集合(二)
查看>>
git合并两个不同的仓库
查看>>
阿里集团搜索和推荐关于效率&稳定性的思考和实践
查看>>
【Java】使用pinyin4j获取汉字的全拼或首字母
查看>>
mysql 中合并查询结果union用法 or、in与union all 的查询效率
查看>>
How to dynamically load directive into page
查看>>
Caffe 学习:Eltwise层
查看>>
Linux共享库 Linux内核链表
查看>>
CentOS 7使用yum安装Docker
查看>>
touch all contents in a folder recursively
查看>>
再谈每周工作不要超过 40 小时
查看>>
<%= %> 和<%# %>的区别
查看>>
基本文本处理
查看>>
既然 int是值类型,而 class是引用类型,那么int是怎样从Object派生的呢?
查看>>