点击上方“ 大数据手稿笔记”关注我们哦!
近日了解到 Kafka 正在酝酿重大更新,可能会提供自管理的元数据仲裁机制以消除对 Zookeeper 的依赖,社区呼吁也相当强烈。那么一般而言 Zookeeper 在分布式系统中扮演什么角色?目前 Zookeeper 都应用在哪些分布式架构中?本文从 Zookeeper 可以聊起,盘点那些离不开 Zookeeper 的分布式技术架构! 一. Zookeeper 概述
Zookeeper 是一个高性能、高可靠的分布式协调系统,是 Google Chubby 的一个开源实现。Zookeeper 能够为分布式应用提供一致性服务,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
Zookeeper 使用 Zab 协议传递 leader 的状态改变,保证 leader 与 follower 的一致性。Zab 全称 Zookeeper Atomic Broadcast protocol,是 Paxos 共识算法的经典实现。
Zookeeper 应用非常广泛,应用场景主要包括:
-
数据发布订阅(配置中心)
-
命名服务(保存全局唯一ID)
-
分布式协调服务(Watcher、异步通知)
-
心跳检测(临时节点)
-
任务进度上报(临时节点)
-
Master选举(临时节点、Watcher)
-
分布式锁(临时节点、Watcher)
提及 Solr 就不得不说说 Elasticsearch,Elasticsearch 同 Solr 一样也是非常流行的搜索引擎,但是 Elasticsearch 却不依赖 Zookeeper 做分布式协调,而是自带集群分布式协调系统(Zen Discovery 或 Zen2),这也是 Elasticsearch 与 Solr 之间的重要区别之一。
六. 写在最后我们知道 Zookeeper 在分布式系统架构中使用广泛,本文重点介绍了 Zookeeper 在大数据领域分布式架构中的几个典型应用,除此之外,Zookeeper 还有更多的使用场景,包括在 Spring Cloud 微服务架构、Dubbo 分布式架构中都有应用,这里就不多赘言了。
参考:
-
Zookeeper原理及其在Hadoop和HBase中的应用:https://www.cnblogs.com/iyulang/p/6604914.html
-
kafka与zookeeper之间的关联:https://yq.aliyun.com/articles/653930
-
zookeeper在大型分布式系统中的应用:https://www.cnblogs.com/aoshicangqiong/p/7978418.html
推荐阅读:
欢迎关注公众号👇