Zookeeper【从五个方面,渐进】
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Zookeeper【从五个方面,渐进】,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1643字,纯文字阅读大概需要3分钟。
内容图文
![Zookeeper【从五个方面,渐进】](/upload/InfoBanner/zyjiaocheng/1310/6d46789597b34662a8bbcf53c1f6ea6d.jpg)
①领导者(leader)Leader服务器为客户端提供读写服务。它是集群工作机制的核心,事务请求唯一调度者和处理者,保证集群事务请求处理的顺序性。
②学习者(learner),学习者又分为跟随者和观察者:
跟随者(follower)Follower服务器为客户端提供读服务,参与Leader选举过程,参与写操作“过半写成功”策略。处理非事务请求,转发事务请求给领导者,同时参与投票。
观察者(observer)Observer服务器为客户端提供读服务,不参与Leader选举过程,不参与写操作“过半写成功”策略。用于在不影响写性能的前提下提升集群的读性能。该服务不参与投票,可有可无的。
③客户端(client)服务请求发起方。
![技术分享图片](/upload/getfiles/default/2022/10/28/20221028033151628.jpg)
![技术分享图片](/upload/getfiles/default/2022/10/28/20221028033151883.jpg)
【二、Zookeeper选举】
上面提到的服务器角色是怎么产生的呢,就是通过选举。
我这里,以一个例子的来形象说明选举的过程:
1、咱们现在有10台服务器,刚刚上线的服务器没有任何数据,崭新的。咱们给它编个号:1,2,3,4,5,6,7,8,9,10,咱们呢把这10个服务器逐个都开机了哈。
2、在服务器启动的时候啊,选举就开始了。1号服务器启动,先给自己投票,然后把自己的信息发出去,让别的也投。但是呢其他服务器还没有启动啊,于是1号服务器就收不到反馈。心情很是失落,像笔者那年一样,此时1号服务器就开始处于选举状态了(Looking左顾右盼的,焦急等待)。
3、接着2号服务器终于启动了,它也给自己投票,但是2号服务器收到了1号服务器的反馈。2号服务器暂时胜出,票数还没有大于半数,2号也得处于选举状态。
4、同理哈,3号启动,4号启动,5号启动,一直到6号。6号就不同了,它给自己先投了一票,然后收到了1,2,3,4,5的投票,6票超过半数,他就是领导者。同时也先入为主了,后续7,8,9,10号无论票数怎样,都不管了。
![技术分享图片](/upload/getfiles/default/2022/10/28/20221028033152169.jpg)
【三、Zookeeper各种角色作用】
1、Zookeeper中的请求
事务请求:
改变服务器状态的请求。
非事务请求:
仅仅读取数据,不修改数据的请求
2、领导者Leader
领导者会根据不同的请求,进行不同的处理。
3、跟随者Follower
①向领导者发送请求;
②接收领导者的消息并处理;
③接收客户端请求,如果是写入则需要发送给领导者进行半数投票;
④返回请求结果给客户端。
4、观察者Observer
除了不参与Leader选举和Proposal投票外,与Follower的作用相同。
【四、Zookeeper中的Zab协议】
①客户端所有的写入请求,都要转发给服务中唯一的领导者Leader,然后领导者Leader根据请求发起一个Proposal请求;
②其他的跟随服务,对该Proposal请求进行投票,看自己是否支持这个请求;
③领导者Leader对投票进行收集,票数过半时,领导者Leader会向所有的服务发送一个通知。
④客户端所连接的那个服务器收到消息,执行操作并作出对客户端的回应。
![技术分享图片](/upload/getfiles/default/2022/10/28/20221028033152908.jpg)
【五、Zookeeper节点】
Zookeeper有四种常用节点:
①持久:PERSISTENT,【持久化节点】;
②PERSISTENT_SEQUENTIAL,顺序自动编号【持久化节点】,这种节点会根据当前已存在的节点数自动加 1
③EPHEMERAL,【临时节点】, 客户端session超时这类节点就会被自动删除
④EPHEMERAL_SEQUENTIAL,【临时节点】临时自动编号节点。
然后这四种节点还可以分呢!
按照持久化
持久:PERSISTENT、PERSISTENT_SEQUENTIAL
临时:EPHEMERAL、EPHEMERAL_SEQUENTIAL
还可以按照类型,分呢!
目录节点:PERSISTENT、EPHEMERAL
编号目录节点:PERSISTENT_SEQUENTIAL、EPHEMERAL_SEQUENTIAL
原文:https://blog.51cto.com/13479739/2466769
内容总结
以上是互联网集市为您收集整理的Zookeeper【从五个方面,渐进】全部内容,希望文章能够帮你解决Zookeeper【从五个方面,渐进】所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。