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用途
- 分布式应用配置管理
- 统一命名服务
- 状态同步服务
- 集群管理,保证集群中数据的强一致性
- 分布式锁,分布式环境中不同进程之间争夺资源,类似于多线程中的锁
- 分布式队列:数据发布与订阅
- zookeeper集群leader选举:即master节点选举,主节点down掉后,从节点就会接手工作,并且保证这个节点是唯一的。从而保证集群是高可用的
1.4 zookeeper的特性
- 一致性:数据一致性,数据按照顺序分批入库
- 原子性:事物要么成功要么失败
- 单一视图:客户端连接集群中的任意zk节点,数据都是一致的
- 可靠性:每次对zk的操作状态都会保存在服务端
- 实时性:客户端可以读取到zk服务端的最新数据
上一篇: 使用Redis如何设置永久有效