Zookeeper简介及核心概念

Zookeeper简介及核心概念

文章目录

  • Zookeeper简介及核心概念
    • 一、Zookeeper简介
    • 二、Zookeeper设计目标
      • 2.1 目标一:简单的数据模型
      • 2.2 目标二:构建集群
      • 2.3 目标三:顺序访问
      • 2.4 目标四:高性能高可用
    • 三、核心概念
      • 3.1 集群角色
      • 3.2 会话
      • 3.3 数据节点
      • 3.4 节点信息
      • 3.5 Watcher
      • 3.6 ACL
    • 四、ZAB协议
      • 4.1 ZAB协议与数据一致性
      • 4.2 ZAB协议的内容
        • 1. 崩溃恢复
        • 2. 消息广播
    • 五、Zookeeper的典型应用场景
      • 5.1 数据的发布/订阅
      • 5.2 命名服务
      • 5.3 Master选举
      • 5.4 分布式锁
      • 5.5 集群管理
    • 参考资料

一、Zookeeper简介

Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护。Zookeeper 可以用于实现分布式系统中常见的发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。它具有以下特性:

  • 顺序一致性:从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到 Zookeeper 中;
  • 原子性:所有事务请求的处理结果在整个集群中所有机器上都是一致的;不存在部分机器应用了该事务,而另一部分没有应用的情况;
  • 单一视图:所有客户端看到的服务端数据模型都是一致的;
  • 可靠性:一旦服务端成功应用了一个事务,则其引起的改变会一直保留,直到被另外一个事务所更改;
  • 实时性:一旦一个事务被成功应用后,Zookeeper 可以保证客户端立即可以读取到这个事务变更后的最新状态的数据。

二、Zookeeper设计目标

Zookeeper 致力于为那些高吞吐的大型分布式系统提供一个高性能、高可用、且具有严格顺序访问控制能力的分布式协调服务。它具有以下四个目标:

2.1 目标一:简单的数据模型

Zookeeper 通过树形结构来存储数据,它由一系列被称为 ZNode 的数据节点组成,类似于常见的文件系统。不过和常见的文件系统不同,Zookeeper 将数据全量存储在内存中,以此来实现高吞吐,减少访问延迟。

2.2 目标二:构建集群

可以由一组 Zookeeper 服务构成 Zookeeper 集群,集群中每台机器都会单独在内存中维护自身的状态,并且每台机器之间都保持着通讯,只要集群中有半数机器能够正常工作,那么整个集群就可以正常提供服务。

2.3 目标三:顺序访问

对于来自客户端的每个更新请求,Zookeeper 都会分配一个全局唯一的递增 ID,这个 ID 反映了所有事务请求的先后顺序。

2.4 目标四:高性能高可用

ZooKeeper 将数据存全量储在内存中以保持高性能,并通过服务集群来实现高可用,由于 Zo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值