本章以zookeeper的理解及基本使用两方面进行介绍
目录
1 zookeeper的概念
1.1 CAP定理:
Zookeeper的CAP定理:
C:一致性
写:强一致性
读:顺序一致性,有可能会读取到老数据
A:可用性
P:分区一致性
只能满足两个 一般都是CP
1.2 zooKeeper的本质:
zooKeeper就是一个小型文件存储系统+监听机制小型数据可以存储在ZooKeeper上监听机制就是把存贮到ZooKeeper上的数据进行监听,一但数据发生改变,就会向对此数据感兴趣的客户端进行事件推送,以前客户端获取到最新数据
1.3 zooKeeper的主要作用:
基于ZooKeeper的本质他可以实现分布式数据一致性的问题解决,分布式应用程序可以基于 它实现很多功能诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、 Master 选举、分布式锁和分布式队列等功能
2 zookeeper数据模型
2.1 zookeeper介绍:
注意点:标准文件系统没有盘符的概念, 都是以/开始的这种路径 从而组成一种树形层次结构‘
在树形层次结构中的每一个节点,我们称为znode当我们在zookeeper中存在数据的时候就是去创建一个又一个的znode。
2.2 znode的特点:
每个路径下的节点key(完整路径,名称)是唯一的,即同一级节点 key 名称
是唯一的当我们在创建一个znode节点的时候,是需要我们给个路径的(绝对路径),且这个路径在同一级目录下他是唯一的每个节点中存储了节点value和对应的状态属性(多个)。
2.3 znode的组成:
Znode本身是由3部分组成:
’在Znode中每个节点的数据,最多存储1MB的数据所以我们就说 zookeeper是一个小型文件存储系统,一般存储分布式应用中的配置文件的信息以及一些状态信息
2.4 zooKeeper节点类型
PERSISTENT: 持久节点,默认
持久节点不会随着会话的消失和链接的断开而消失除非手动delete删除
PERSISTENT_SEQUENTIAL: (persistent_sequential) 持久顺序节点
创建时zookeeper 会在路径上加上序号作为后缀,非常适合用于分布式锁
EPHEMERAL:(ephemeral) 临时节点
跟连接会话绑定,临时节点会在客户端会话断开后由zk服务端自动删除。适用于心跳,服 务发现,分布式锁等场景,创建时添加 -e 参数
EPHEMERAL_SEQUENTIAL:(ephemeral_sequential) 临时顺序节点
与持久顺序节点类似,不同之处在于EPHEMERAL_SEQUENTIAL是临时的,会在会话断 开后删除,创建时添加 -e -s 参数
CONTAINER:容器节点(container)
当子节点都被删除后,Container 也随即删除,创建时添加 -c 参数
PERSISTENT_WITH_TTL:(persistent_with_ttl)TTL节点
客户端断开连接后不会自动删除Znode,如果该Znode没有子Znode且在给定
TTL时间内无修改,该Znode将会被删除;单位是毫秒;创建时添加 -t 参数
3 znode 结构介绍
4 zookeeper的搭建
zookeeper搭建给大家推荐一个文档上面记录比较详细,
https://www.runoob.com/w3cnote/zookeeper-tutorial.html
按照菜鸟教程一步步搭建即可
客户端连接服务端成功后的界面
总结
重点在于zookeeper的本质,存储模型,组成部分,大家搞清楚了以后其他的特性就比较好理解
参照zookeeper的官方文档即可