简述 Zookeeper【重要】

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 简述 Zookeeper【重要】

Zookeeper 为分布式应用提供了一个高效可靠的分布式协调服务,提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。它的实现是依赖于 ZAB 协议,实现了一种主备模式(master-slave)的架构来保持集群中数据的一致性。Zookeeper 使得分布式应用可以通过一个共享的树形结构的命名空间实现协调,且 zookeeper 将全量数据存储在内存中,以此来实现提高服务器的吞吐、减少延迟的目的。由于 zookeeper 将全量数据存储在内存中,并且直接服务于客户端的所有非事务请求,因此它尤其适合以读操作为主的应用场景。

zookeeper 集群中包括三个角色:Leader、Follow、Observer。其中 Leader 是通过选举确定的一台机器,为客户端提供读写功能,一个集群同一时间只能有一个实际上的 Leader。Follow 和 Observer 一样,在不影响写性能的前提下提升集群的读性能,但 Follow 会参加 Leader 的选举,Observer 不会参加任何的投票。Zookeeper 集群节点的数量为奇数个。它的节点有三种类型,分别是临时节点、持久节点和顺序节点。

最重要的功能是 Watcher 数据变更通知的功能,它是 Zookeeper 的核心功能。Watcher 可以监控目录节点的数据变化以及子目录节点的变化,一旦这些状态发生变化时,服务器就会通知所有设置在这个目录节点上的 watcher,从而每个客户端都很快知道它所关注的目录节点的状态,从而做出相应的反应。

它的应用场景有:统一命名服务,集群管理,master 选举,分布式屏障、分布式队列、分布式锁、分布式协调 / 通知等。

二、为什么选择 zookeeper?

首先,zookeeper 无论从性能、易用性还是稳定性来说,都已经达到了一个工业级产品的标准。在解决分布式数据一致性上,除了 zookeeper 外,目前还没有一个成熟稳定且被大规模应用的解决方案。

其次 zookeeper 是开放源代码的,同时也是免费的,目前已经有越来越多的大型分布式项目将 zookeeper 作为其核心组件,如 Hadoop、HBase、Solr 等。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
存储 网络协议 数据管理
zookeeper深入浅出 1
zookeeper深入浅出
103 0
|
存储 Java 数据库
zookeeper深入浅出 2
zookeeper深入浅出
83 0
【Zookeeper】源码分析之服务器(一)
前面已经介绍了Zookeeper中Leader选举的具体流程,接着来学习Zookeeper中的各种服务器。
132 0
【Zookeeper】源码分析之服务器(一)
|
存储 数据库
|
存储 数据安全/隐私保护
一文带你深入浅出zookeeper(上)
一文带你深入浅出zookeeper(上)
197 0
|
存储 监控 Dubbo
一文带你深入浅出zookeeper(下)
一文带你深入浅出zookeeper(下)
144 0
【Zookeeper】源码分析之服务器(五)之ObserverZooKeeperServer
前面分析了FollowerZooKeeperServer,接着分析ObserverZooKeeperServer。
127 0
|
存储 负载均衡 监控
ZooKeeper简要总结
ZooKeeper是用于维护配置信息,命名,提供分布式同步以及提供组服务的集中式服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实施它们时,都会进行很多工作来修复不可避免的错误和竞争条件。由于难以实现这类服务,因此应用程序最初通常会跳过它们,这会使它们在发生更改时变得脆弱并且难以管理。即使部署正确,这些服务的不同实现也会导致管理复杂。
ZooKeeper简要总结
【Zookeeper】源码分析之服务器(三)之LeaderZooKeeperServer
前面分析了ZooKeeperServer源码,由于QuorumZooKeeperServer的源码相对简单,于是直接分析
156 0
【Zookeeper】源码分析之服务器(四)之FollowerZooKeeperServer
 前面分析了LeaderZooKeeperServer,接着分析FollowerZooKeeperServer。
147 0