Zookeeper简介

database

1.1 什么是zookeeper

  • Zookeeper是一个分布式的、开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Apache Hadoop的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理的问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
  • 它是一个为分布式应用听过一致性协调服务的中间件

1.2 zookeeper提供了什么

  • zookeeper=文件系统+监听通知机制。
  • 文件系统:zookeeper维护一个类似文件系统的树桩数据结构,每个子目录项都被称为znode(目录节点),和文件系统一样,我们能够自由的增加、删除znode,且znode是可以存储数据的。

    • zookeeper为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得zookeeper不能用于存放大量的数据,每个节点的存储数据上限为1M。
    • 有四种类型的znode:

      • Persistent -持久化目录节点:客户端与zookeeper断开连接后,该节点依旧存在
      • Persistent_SEQUENTIAL-持久化顺序编号目录节点:客户端与zookeeper断开连接后,该节点依旧存在,只是zookeeper给该节点名称进行顺序编号
      • ephemeral-临时目录节点:客户端与zookeeper断开后,该节点被删除
      • Ephemeral_sequential-临时顺序编号目录节点:客户端与zookeeper断开后,该节点被删除,只是zookeeper给该节点名称进行顺序编号
  • 监听通知机制:客户端注册监听(watcher事件)它关心的目录节点,当目录节点发生变化(数据更改、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

1.3 zookeeper用途

  1. 分布式应用配置管理
  2. 统一命名服务
  3. 状态同步服务
  4. 集群管理,保证集群中数据的强一致性
  5. 分布式锁,分布式环境中不同进程之间争夺资源,类似于多线程中的锁
  6. 分布式队列:数据发布与订阅
  7. zookeeper集群leader选举:即master节点选举,主节点down掉后,从节点就会接手工作,并且保证这个节点是唯一的。从而保证集群是高可用的

1.4 zookeeper的特性

  • 一致性:数据一致性,数据按照顺序分批入库
  • 原子性:事物要么成功要么失败
  • 单一视图:客户端连接集群中的任意zk节点,数据都是一致的
  • 可靠性:每次对zk的操作状态都会保存在服务端
  • 实时性:客户端可以读取到zk服务端的最新数据

以上是 Zookeeper简介 的全部内容, 来源链接: utcz.com/z/532566.html

回到顶部