zookeeper学习笔记
一个动物管理员的故事。
在集群的管理中,zookeeper主要负责分布式应用程序的协调的工作。
一、四个主要的功能
- 统一的命名服务
在分布式应用中需要一套完整的命名规则,既能够产生唯一的名称又便于识别和记忆。通常情况下使用树形的名称结构是一个理想的选择。
阿里的dubbo中使用了zookeeper来作为其命名服务,维护全局的服务地址列表。
在leader统一命名的管理下,集群中的数据读写的方式:
- 1.1.写数据,一个客户端进行写数据请求时,会指定Zookeeper集群节点,如果是Follower接收到写请求,会把请求转发给Leader,Leader通过内部的Zab协议进行原子广播,直到所有Zookeeper节点都成功写了数据,然后Zookeeper会给Client发回写完响应。
- 1.2.读数据,因为集群中Zookeeper按照统一的命名空间,所有Zookeeper节点呈现相同的命名空间视图(文件目录名称结构),所以读数据的时候请求任意一台Zookeeper节点都一样。
- 配置管理
将人工维护的每台机器都一样的配置环境一样的东西交给zookeeper来维护。
如图所示,将配置信息保存在Zookeeper(Leader节点)的某一个目录中,然后将所有需要修改的应用机器订阅该Zookeeper(Leader节点)节点,一旦Leader节点发布新配置信息,每台订阅的机器就会收到Zookeeper的通知,然后从Zookeeper获取新的配置信息应用到系统中,完成配置的集中统一管理。
- 集群管理
监控集群和leader选举。
看不懂了。
二、基本运转流程
ZooKeeper的基本运转流程:
1、选举Leader。
2、同步数据。
3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
4、Leader要具有最高的执行ID,类似root权限。
5、集群中大多数的机器得到响应并接受选出的Leader。
三、zookeeper为什么要用
我个人觉得zookeeper在hadoop中的作用就是为了防止夯机,所以实时监管了一个NN。
四、zookeeper安装
参考资料
【1】 作者:悟成 链接:https://www.jianshu.com/p/fdcd6cd6a871 来源:简书
【2】 百度百科 https://baike.baidu.com/item/zookeeper/4836397?fr=aladdin
【3】 作者:柳树 连接:https://zhuanlan.zhihu.com/p/69114539
【4】 https://blog.csdn.net/julyfire/article/details/12081021