zookeeper的概念

什么是zookeeper

  • Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务

  • zookeeper是为别的分布式程序服务的

  • Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)

    • Zookeeper集群的角色: Leader 和 follower (Observer)

zookeeper在底层最核心的两个功能:

  • 管理(存储,读取)用户程序提交的数据

  • 并为用户程序提供数据节点监听服务

1.2 zookeeper服务的应用场景

  • 主从协调

  • 服务器节点动态上下线

  • 统一配置管理

  • 分布式共享锁

  • 统一名称服务等等

1.3 zookeeper集群特性

  • Zookeeper:一个leader,多个follower组成的集群

  • 全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的

  • 分布式读写,更新请求转发,由leader实施

  • 更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行

  • 数据更新原子性,一次数据更新要么成功,要么失败

  • 实时性,在一定时间范围内,client能读到最新数据

1.4 zookeeper数据结构

  • 层次化的目录结构,命名符合常规文件系统规范

  • 每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识

  • 节点Znode可以包含数据和子节点(但是EPHEMERAL类型的节点不能有子节点)

  • 客户端应用可以在节点上设置监视器

1.5节点类型

  • Znode有两种类型:

    • 短暂(ephemeral)(断开连接自己删除)

    • 持久(persistent)(断开连接不删除)

  • Znode有四种形式的目录节点(默认是persistent )

    • PERSISTENT 持久类型

    • PERSISTENT_SEQUENTIAL(持久序列类型/test0000000019 )sequential

    • EPHEMERAL 短暂类型

    • EPHEMERAL_SEQUENTIAL 短暂序列类型

      创建znode时设置顺序标识,znode名称后会附加一个值,顺序号是一个单调递增的计数器,由父节点维护

  • 在分布式系统中,顺序号可以被用于为所有的事件进行全局排序,这样客户端可以通过顺序号推断事件的顺序

1.6 Zookeeper 数据结构特点

  1. 每个子目录项如 NameService 都被称作为 znode,这个 znode 是被它所在的路径唯一标识,如 Server1 这个 znode 的标识为 /NameService/Server1

  2. znode 可以有子节点目录,并且每个 znode 可以存储数据,注意 EPHEMERAL类型的目录节点不能有子节点目录

  3. znode 是有版本的,每个 znode 中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据

  4. znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除,Zookeeper 的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个 session 失效,znode 也就删除了

  5. znode 的目录名可以自动编号,如 App1 已经存在,再创建的话,将会自动命名为 App2

  6. znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是 Zookeeper 的核心特性,Zookeeper 的很多功能都是基于这个特性实现的,后面在典型的应用场景中会有实例介绍

1.7 如何使用

Zookeeper作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,后面将会详细介绍 Zookeeper能够解决的一些典型问题,这里先介绍一下,Zookeeper 的操作接口和简单使用示例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值