论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
SqlServer
›
【Zookeeper】四,Zookeeper节点类型、通知、仲裁、会话 ...
【Zookeeper】四,Zookeeper节点类型、通知、仲裁、会话
张裕
金牌会员
|
2024-11-28 22:56:44
|
显示全部楼层
|
阅读模式
楼主
主题
508
|
帖子
508
|
积分
1524
Zookeeper的架构
Zookeeper的服务器端运行两种模式:独立模式(standalone)和仲裁模式(quorum)。
独立模式只是一个单独的服务器,Zk的状态无法进行复制。
仲裁模式下,Zk拥有一组服务器,称之为Zk集合,它们之间可以进行状态复制。
znode的版本
每个znode都有一个版本号,随着数据的变革而进行自增。比如实行set和delete两次操纵,这两次调用以版本号作为转入参数,只有当传入的版本号与服务器上的版本号同等时才会调用成功。比如客户端c1对znode/config写入了一些配置信息,如果另外一个c2同时更新了这个znode,此时c1的版本号已颠末期,c1调用set就会失败。
Zookeeper的节点类型
层级树状布局
在Zookeeper中,维护了一个小型的数据节点,这些节点称为znode,接纳类似于文件体系的层级树状布局进行管理。
根节点包含4个子节点,其中三个子节点拥有下一级节点,叶子节点存储了数据信息。
/workers下面的每个子节点生存了一个可用的从节点信息。
/tasks下面的每个znode子节点表现了已经创建,并等候从节点实行的使命信息。
/assign下面的每个znode子节点生存了分配到某个从节点的一个使命信息,当主节点为从节点分配了一个使命信息,就会在/assign下增加一个子节点。
znode的不同类型
持久节点
持久的znode只能通过delete来删除。
持久类型的znode可以为应用生存一些数据,保证数据不丢失。
暂时节点
当创建该节点的客户端与Zookeeper的毗连断开时,这个节点就会被删除。
暂时节点主要通报了应用层面的一些信息。在主从模式中,当主节点创建了一个暂时节点时,这个暂时节点的存在表现主节点状态正常。从节点中使用暂时znode也可以检测从节点是否有效。
暂时节点存在以下两种环境会被删除:
创建该znode的客户端会话超时或主动关闭。
某个客户端主动删除该节点。
有序节点
一个znode可以被设置为有序节点。有序节点会被分配一个唯一的单调递增的整数。
比方创建/tasks/task-的时间,Zookeeper将会分配一个唯一的序列号追加到路径之后,最终名称为/tasks/task-1
总结
znode统共有四种类型
持久的(persistent)
暂时的(ephemeral)
持久有序(persistent sequential)
暂时有序(ephemeral sequential)
Zookeeper监视与通知
如果客户端每次访问znode节点的时间,客户端都要获取节点的所有内容,这会导致很高的耽误,代价很大。所以Zookeeper选择了基于通知的机制。首先,客户端告知Zookeeper自己要通过哪一个znode来吸收通知,也就是在znode上设置一个监视点;当节点发生变革时,客户端会受到这个通知,并从Zookeeper上获取到最新的数据。其次,通知是一种单次触发的操纵,客户端每次吸收到通知后,必须再次设置一个新的监视点。
如果客户端在吸收到通知,并设置下一个新的监视点之前,节点数据发生了变革呢?
客户端在每次设置新的通知的时间,都需要先从节点读取数据,如许就不会错过所有的变更。
通知的类型
通知的类型取决于设置监视点的类型,如监控znode的数据变革、监控znode子节点的变革、监控znode的创建和删除。
Zookeeper的仲裁
当Zk存在多个副本的时间,Zk会复制集群中所有服务器的数据树,如果让客户端等候服务器复制完所有数据后再继续,显然会存在较高的耽误。所以在Zk中可以设定法人数量。比方,我们一共有5个Zk服务器,将法定人数设置为3。如许,只要任何3个服务器生存了数据,客户端就可以继续,而其他两个服务器最终也将会捕捉到数据,并进行生存。
法定人数的设置不能太大或太小,一般设置为服务器数量的多数,并且服务器数量一般为奇数个(不是必须的,但偶数个会使体系更加脆弱)。比方统共5台Zk服务器,则可以将法定人数数量设置为3。
Zk的会话
在进行操纵Zookeeper前,客户端需要与服务端创建会话。当一个会话终止时,这个会话期间创建的所有暂时节点都将会消散。
会话提供了次序保障,同一个会话中的哀求会以FIFO的次序实行。如果客户端拥有多个并发的会话,那么FIFO的次序在多个会话之间未必能够保持。
会话的生命周期
会话的生命周期是指会话从创建到结束的时期。
会话的相关状态主要有:CONNECTING、CONNECTED、CLOSED、NOT_CONNECTED
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
张裕
金牌会员
这个人很懒什么都没写!
楼主热帖
AI绘画Stable Diffusion Lora模子的利 ...
linux企业版火绒(火绒终端安全管理体 ...
复杂度(上卷)
ESP32 IDF开发 应用篇⑭ Wifi TCP客户 ...
LLaMa系列模子详解(原理介绍、代码解 ...
Linux安装最新版Docker完整教程(建议 ...
MyBatis是如何初始化的?
学习ASP.NET Core Blazor编程系列六— ...
什么时候用C而不消C++?
K8S 实用工具之六-kubectl-aliases ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表