欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Zookeeper简介

程序员文章站 2022-06-10 07:53:36
1.1 什么是zookeeper Zookeeper是一个分布式的、开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Apache Hadoop的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理的问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的 ......

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服务端的最新数据