ZooKeeper集群操作以及集群Master选举

本文详细介绍了ZooKeeper的特性,包括分层命名空间和分布式协调服务的作用。通过实例展示了如何搭建ZK集群,启动过程及ZK节点的类型。还探讨了ZK集群中的Master选举机制,当Leader服务器宕机时,如何自动选举新的Leader。
摘要由CSDN通过智能技术生成

ZooKeeper介绍

ZooKeeper 是一个为 分布式应用 提供的 分布式 、开源的 协调服务

它公开了一组简单的 原语 ,分布式应用程序可以根据这些原语来实现用于 同步配置维护 以及 命名 的更高级别的服务。

怎么理解协调服务呢?比如我们有很多应用程序,他们之间都需要读写维护一个 id ,那么这些 id 怎么命名呢,程序一多,必然会乱套,ZooKeeper 能协调这些服务,解决命名、配置、同步等问题,而做到这些,只需要一组简单的 原语 即可:

create : 在树中的某个位置创建一个节点

delete : 删除一个节点

exists : 测试节点是否存在于某个位置

get data : 从节点读取数据

set data : 往一个节点里写入数据

get children : 检索节点的子节点列表

sync : 等待数据被传播
复制代码

从这些 ZooKeeper (以下简称ZK)的 API 可以看到,都是围绕 Node 来操作,下文实操看一下怎么操作 Node

ZooKeeper 的特征

  • 简单

ZooKeeper 允许分布式进程通过 共享的层级命名空间 相互协调,该命名空间的组织类似于标准文件系统。

命名空间由 数据寄存器 组成,在 ZooKeeper 称为 znodes ,它们类似于文件和目录。

与典型的文件系统不同,它是为 存储 而设计的,ZooKeeper 数据保存在 内存 中,这意味着ZooKeeper 可以实现 高吞吐量低延迟数

ZooKeeper 很重视 高性能高可用性严格有序访问 :性能高意味着它可以在大型分布式系统中使用;而他又具备可靠性,这使它不会成为单点故障;严格的排序意味着可以在客户端上实现复杂的同步原语。

  • 可被复制(高可用)

像它协调的分布式进程一样,ZooKeeper 本身也可以在称为集合的一组主机上进行复制。

组成ZooKeeper 服务的服务器都必须彼此了解。它们维护内存中的状态镜像,以及持久存储中的事务日志和快照。只要大多数服务器可用,ZooKeeper 服务将可用。

客户端连接到单个 ZooKeeper 服务器。客户端维护一个 TCP连接 ,通过该连接发送请求,获取响应,获取监视事件并发送心跳。如果与服务器的 TCP连接 断开,则客户端将连接到其他服务器。

  • 有序的

ZooKeeper 用一个反映所有 ZooKeeper 事务顺序 的数字标记每个更新。后续操作可以使用该命令来实现更高级别的抽象,例如 同步分布式锁

读取为主 的工作负载中,它特别快。

ZooKeeper 应用程序可在数千台计算机上运行,并且在读取比写入更常见的情况下,其性能最佳,比率约为10:1。

分层命名空间

ZooKeeper提供的名称空间与标准文件系统的名称空间非常相似。

名称是由 斜杠/)分隔的一系列路径元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值