欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Zookeeper学习

Zookeeper学习

2025/3/9 13:19:27 来源:https://blog.csdn.net/qq_40708522/article/details/146081140  浏览:    关键词:Zookeeper学习

Zookeeper 是一个开源的分布式协调框架,它主要用于处理分布式系统中的一些常见问题,如同步、配置管理、命名服务和集群管理等。Zookeeper 是由 Apache 提供的,并且广泛应用于各种分布式应用中,特别是在高可用、高可靠性和高性能的系统中。

Zookeeper 的主要功能

  1. 分布式协调:Zookeeper 提供了协调多个节点(服务器)间行为的机制。例如,分布式锁、选举、配置管理等。
  2. 命名服务:Zookeeper 提供类似于文件系统的树形结构,可以作为分布式系统中的命名服务,帮助各个节点在分布式环境中互相发现。
  3. 同步服务:Zookeeper 可以帮助多个客户端保持一致的状态。一个典型的例子是分布式锁,它确保在同一时刻只有一个客户端能进行某个操作。
  4. 配置管理:Zookeeper 可以集中管理配置信息并将其同步到所有节点,确保各个节点的配置信息一致。
  5. 高可用性:Zookeeper 本身设计为高可用且容错的,可以在节点出现故障时继续工作。

Zookeeper 的架构

Zookeeper 的核心架构由以下几个部分组成:

  • Zookeeper 集群:Zookeeper 由多个节点组成,这些节点之间会通过选举产生一个 leader 节点,其它节点为
    follower。整个集群至少需要 3 个节点,以确保能够在节点失败时继续提供服务。
  • Zookeeper 客户端:客户端通过 Zookeeper 提供的 API 进行交互,它可以是任意编程语言的客户端,Zookeeper
    提供了 Java、C、Python 等语言的客户端库。
  • Zookeeper 服务器(节点)
    Leader 节点:负责处理所有的写请求,并将数据同步到其它节点。
    Follower 节点:负责处理所有的读请求,且将写请求转发给 leader 节点。跟随 leader 节点的变化。
    Observer 节点:仅作为观察者,不参与投票和写请求,但它可以提供读服务,减少集群的压力。
    ZNode:Zookeeper 中的核心数据结构,类似于文件系统中的文件或目录。
  • ZNode 支持两种数据类型
  • 持久节点:当客户端断开连接时,节点依然存在。
  • 临时节点:当客户端与 Zookeeper 服务器断开连接时,节点会被自动删除。

Zookeeper 的工作原理

Zookeeper 基于 Paxos 协议实现分布式一致性。所有的写请求都会先由 Leader 节点进行处理,然后将更改同步到所有的 Follower 节点。

  1. 读请求:Zookeeper 集群中的任何节点都可以处理读请求,通常由 Follower 节点处理。
  2. 写请求:写请求会先被发送到 Leader 节点,Leader 节点会进行数据处理并同步给其它节点。如果 Leader
    节点宕机,集群会进行 Leader 选举,确保集群的高可用性。
  3. 一致性:Zookeeper 保证
    顺序一致性(所有操作按提交顺序被执行),原子性(每个操作要么完全成功,要么完全失败),单一视图(客户端能看到一致的数据视图),实时性(客户端总能看到最新的数据),高可靠性(如果某个节点失败,系统仍然可以继续运行)。

Zookeeper 的常用操作

创建节点:

bash
create /myNode “data”
创建一个路径为 /myNode,值为 “data” 的节点。

获取节点数据:

bash
get /myNode
获取路径 /myNode 的数据。

修改节点数据:

bash
set /myNode “newData”
修改路径 /myNode 的数据为 “newData”。

删除节点:

bash
delete /myNode
删除路径 /myNode 的节点。

获取子节点:

bash
ls /myNode
获取 /myNode 路径下的子节点列表。

Zookeeper 的应用场景

  1. 分布式锁:通过临时节点实现分布式锁,确保在同一时刻只有一个客户端能够操作某个资源。
  2. 服务注册与发现:Zookeeper 用于服务注册与发现,允许各个服务通过注册节点将自己暴露给集群中的其他节点,其他节点可以通过获取
    ZNode 子节点来发现服务。
  3. 分布式配置管理:Zookeeper 可以集中管理配置信息,所有服务都可以通过 Zookeeper
    获取最新的配置信息,确保配置的一致性和可更新性。
  4. 分布式协调:通过 Zookeeper 实现如选举、同步、状态共享等任务。

官方文档

https://zookeeper.apache.org/doc/r3.7.0/

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词