目录
- 概念理解
- 工作原理
- 文件系统
- 通知系统
- zookeeper在kakfa中的作用
概念理解
Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。
工作原理
Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理;
简单的说,zookeeper=文件系统+通知机制。
文件系统
Zookeeper维护一个类似文件系统的数据结构
每个子目录项如 NameService 都被称作为 znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。
有四种类型的znode:
1、持久化目录节点:客户端与zookeeper断开连接后,该节点依旧存在;
2、持久化顺序编号目录节点:客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号;
3、临时目录节点:客户端与zookeeper断开连接后,该节点被删除;
4、临时顺序编号目录节点:客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。
通知系统
客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。
zookeeper在kakfa中的作用
zookeeper是一个分布式协调框架,很好的将消息生产、消息存储、消息消费的过程结合在一起。在典型的Kafka集群中, Kafka通过Zookeeper管理集群配置,选举leader,以及在消费者组发生变化时进行重新进行分配每个消费者要消费的topic的分区。