![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zookeeper
三郎君
写文章勤分享:巩固自己,帮助他人,何乐而不为!
展开
-
分布式集群中为什么会有 Master?
分布式集群中为什么会有 Master?在分布式环境中,有些业务逻辑只需要集群中的某一台机器进行执行,其他的机器可以共享这个结果,这样可以大大减少重复计算,提高性能,于是就需要进行leader 选举...原创 2020-12-27 12:02:41 · 761 阅读 · 0 评论 -
zookeeper 是如何保证事务的顺序一致性的?
zookeeper 是如何保证事务的顺序一致性的?zookeeper 采用了全局递增的事务 Id 来标识,所有的 proposal(提议)都在被提出的时候加上了zxid,zxid 实际上是一个 64 位的数字高 32 位是 epoch( 时期; 纪元; 世; 新时代)用来标识 leader周期,如果有新的 leader 产生出来,epoch会自增,低 32 位用来递增计数。当新产生 proposal 的时候,会依据数据库的两阶段过程,首先会向其他的 server 发出事务执行请求,如果超过半原创 2020-12-22 11:30:07 · 1541 阅读 · 0 评论 -
zookeeper数据同步
zookeeper数据同步整个集群完成 Leader 选举之后,Learner(Follower 和 Observer 的统称)回向Leader 服务器进行注册。当 Learner 服务器想 Leader 服务器完成注册后,进入数据同步环节。数据同步流程:(均以消息传递的方式进行)Learner 向 Learder 注册数据同步同步确认Zookeeper 的数据同步通常分为四类:(1)直接差异化同步(DIFF 同步)(2)先回滚再差异化同步(TRUNC+DIFF 同步)(3)仅回滚同步(T原创 2020-12-22 11:28:41 · 335 阅读 · 1 评论 -
Zookeeper 下 Server 工作状态
Zookeeper 下 Server 工作状态服务器具有四种状态,分别是 LOOKING、FOLLOWING、LEADING、OBSERVING。(1)LOOKING:寻 找 Leader 状态。当服务器处于该状态时,它会认为当前集群中没有 Leader,因此需要进入 Leader 选举状态。(2)FOLLOWING:跟随者状态。表明当前服务器角色是 Follower。(3)LEADING:领导者状态。表明当前服务器角色是 Leader。(4)OBSERVING:观察者状态。表明当前服务器角色是原创 2020-12-22 11:26:28 · 1000 阅读 · 0 评论 -
zookeeper服务器角色
zookeeper服务器角色Leader(1)事务请求的唯一调度和处理者,保证集群事务处理的顺序性(2)集群内部各服务的调度者Follower(1)处理客户端的非事务请求,转发事务请求给 Leader 服务器(2)参与事务请求 Proposal 的投票(3)参与 Leader 选举投票Observer(1)3.0 版本以后引入的一个服务器角色,在不影响集群事务处理能力的基础上提升集群的非事务处理能力(2)处理客户端的非事务请求,转发事务请求给 Leader 服务器(3)不参与任何形式的原创 2020-12-22 11:25:10 · 91 阅读 · 0 评论 -
Zookeeper 会话管理
Zookeeper 会话管理分桶策略:将类似的会话放在同一区块中进行管理,以便于 Zookeeper 对会话进行不同区块的隔离处理以及同一区块的统一处理。分配原则:每个会话的“下次超时时间点”(ExpirationTime)计算公式:ExpirationTime_ = currentTime + sessionTimeoutExpirationTime = (ExpirationTime_ / ExpirationInrerval + 1) *ExpirationInterval ,Expi原创 2020-12-22 11:23:58 · 149 阅读 · 0 评论 -
Chroot 特性
Chroot 特性3.2.0 版本后,添加了 Chroot 特性,该特性允许每个客户端为自己设置一个命名空间。如果一个客户端设置了 Chroot,那么该客户端对服务器的任何操作,都将会被限制在其自己的命名空间下。通过设置 Chroot,能够将一个客户端应用于 Zookeeper 服务端的一颗子树相对应,在那些多个应用公用一个 Zookeeper 进群的场景下,对实现不同应用间的相互隔离非常有帮助。...原创 2020-12-22 11:20:54 · 314 阅读 · 0 评论 -
zookeeper客户端回调 Watcher
zookeeper客户端回调 Watcher客户端 SendThread 线程接收事件通知,交由 EventThread 线程回调 Watcher。客户端的 Watcher 机制同样是一次性的,一旦被触发后,该 Watcher 就失效了。原创 2020-12-22 11:15:22 · 156 阅读 · 0 评论 -
zookeeper服务端处理 Watcher 实现
zookeeper服务端处理 Watcher 实现(1)服务端接收 Watcher 并存储接收到客户端请求,处理请求判断是否需要注册 Watcher,需要的话将数据节点的节点路径和ServerCnxn(ServerCnxn 代表一个客户端和服务端的连接,实现了 Watcher 的 process 接口,此时可以看成一个 Watcher 对象)存储在WatcherManager 的 WatchTable 和 watch2Paths 中去。(2)Watcher 触发以服务端接收到 setData原创 2020-12-22 11:14:36 · 143 阅读 · 0 评论 -
zookeeper客户端注册 Watcher 实现
zookeeper客户端注册 Watcher 实现(1)调用 getData()/getChildren()/exist()三个 API,传入 Watcher 对象(2)标记请求 request,封装 Watcher 到 WatchRegistration(3)封装成 Packet 对象,发服务端发送 request(4)收到服务端响应后,将 Watcher 注册到 ZKWatcherManager 中进行管理(5)请求返回,完成注册...原创 2020-12-22 11:12:52 · 356 阅读 · 0 评论 -
Zookeeper Watcher 机制 -- 数据变更通知
Zookeeper Watcher 机制 – 数据变更通知Zookeeper 允许客户端向服务端的某个 Znode 注册一个 Watcher 监听,当服务端的一些指定事件触发了这个 Watcher,服务端会向指定客户端发送一个事件通知来实现分布式的通知功能,然后客户端根据Watcher 通知状态和事件类型做出业务上的改变。工作机制:(1)客户端注册 watcher(2)服务端处理 watcher(3)客户端回调 watcherWatcher 特性总结:(1)一次性无论是服务端还是客户端,一原创 2020-12-21 13:02:40 · 219 阅读 · 0 评论 -
四种类型的数据节点 Znode
四种类型的数据节点 Znode(1)PERSISTENT-持久节点除非手动删除,否则节点一直存在于 Zookeeper 上(2)EPHEMERAL-临时节点临时节点的生命周期与客户端会话绑定,一旦客户端会话失效(客户端与zookeeper 连接断开不一定会话失效),那么这个客户端创建的所有临时节点都会被移除。(3)PERSISTENT_SEQUENTIAL-持久顺序节点基本特性同持久节点,只是增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。(4)EPHEMERAL_SEQUE原创 2020-12-21 12:59:41 · 679 阅读 · 0 评论 -
ZAB 协议?
ZAB 协议?ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持崩溃恢复的原子广播协议。ZAB 协议包括两种基本的模式:崩溃恢复和消息广播。当整个 zookeeper 集群刚刚启动或者 Leader 服务器宕机、重启或者网络故障导致不存在过半的服务器与 Leader 服务器保持正常通信时,所有进程(服务器)进入崩溃恢复模式,首先选举产生新的 Leader服务器,然后集群中 Follower 服务器开始与新的 Leader 服务器进行数据同步当集群中超过半数机器与该 Lea原创 2020-12-21 12:58:45 · 110 阅读 · 0 评论 -
Zookeeper 文件系统
Zookeeper 文件系统Zookeeper 提供一个多层级的节点命名空间(节点称为 znode)。与文件系统不同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。Zookeeper 为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得Zookeeper 不能用于存放大量的数据,每个节点的存放数据上限为1M...原创 2020-12-21 12:56:53 · 370 阅读 · 0 评论 -
2. ZooKeeper 提供了什么?
ZooKeeper 提供了什么?(1)文件系统(2)通知机制原创 2020-12-21 12:55:51 · 201 阅读 · 0 评论 -
ZooKeeper 是什么?
ZooKeeper 是什么?ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。Zookeeper 保证了如下分布式一致性特性:(1)顺序一致性(2)原子性(3)单一视图(4)可靠性(5)实原创 2020-12-21 12:53:53 · 114 阅读 · 0 评论