加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

很遗憾,没有一篇文章能讲清楚ZooKeeper

发布时间:2019-11-30 17:54:29 所属栏目:Windows 来源:站长网
导读:副标题#e# 【51CTO.com原创稿件】互联网时代是信息爆发的时代,信息的高并发催生了分布式系统的广泛应用。 图片来自 Pexels 作为分布式系统解决方案的 ZooKeeper,被广泛应用于多个分布式场景。例如:数据发布/订阅,负载均衡,命名服务,集群管理等等。 因

很遗憾,没有一篇文章能讲清楚ZooKeeper

ZAB 广播 PROPOSAL

选举了 Leader 领导集群,Leader 接受到 Client 的请求以后,也可以协调 Follower 工作了。

很遗憾,没有一篇文章能讲清楚ZooKeeper

那么如果 Client 很多的情况下,特别是这些客户端都是做读操作的时候,ZooKeeper 服务器如何处理如此多的请求呢?这里引入 Observer 的概念。

Observer 和 Follower 基本一致,对于非事务请求(读操作),可以直接返回节点中的信息(数据从 Leader 中同步过来的)。

对于事务请求(写操作),会转交给 Leader 做统一处理。Observer 的存在就是为了解决大量客户端读请求。

Observer 和 Follower 的区别是,Observer 不参与仲裁投票,选举 Leader。

很遗憾,没有一篇文章能讲清楚ZooKeeper

Observer 加入 Leader 和 Follower 大家庭

总结

全文用了一个简单的例子讲 ZooKeeper 的主要特性和实现原理,最后做个总结。

ZooKeeper 被用来协调和管理分布式系统,发挥着重要的作用。分布式系统由于其特性,应用分布在不同的物理主机或者网络中。

为了让它们协同工作,ZooKeeper 中的 ZNode 成为统一协调的重要部分,客户端通过 Client 间接到服务端的 ZNode 上,监听 ZNode 数据的变化。

同时 ZNode 支持的持久,临时和顺序性,以及版本(Version)控制,这些特性支持了分布式事务和锁的功能。

如果说,每一个 ZooKeeperClient 对 Server 的写入操作都是一次事务的话,ZooKeeper 服务端维护了大量的事务,并且通过“分桶策略”来管理它们,保证了 Client 与 Server 端协调工作。

为了提高 Server 的可靠性,ZooKeeper 引入了 Server 集群的概念。通过仲裁机制选举 Leader 来领导其他 Follower。

事物都由 Leader 来处理,通过两段提交的方式对其他 Server 发起广播。为了增强对非事务请求的处理效率,ZooKeeper 加入了 Observer 来帮忙。

ZooKeeper 包含的内容远不止上面说的这些,由于篇幅的原因无法一一道来。

为了方便大家理解,文中将一些原理做了简化处理,希望有机会和大家做深入的探讨,咱们下次见。

作者:崔皓

简介:十六年开发和架构经验,曾担任过惠普武汉交付中心技术专家,需求分析师,项目经理,后在创业公司担任技术/产品经理。善于学习,乐于分享。目前专注于技术架构与研发管理。

很遗憾,没有一篇文章能讲清楚ZooKeeper

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读