zookeeper学习
zookeeper是分布式的、开源的程序协调服务,提供的主要功 能包括:配置管理、名字服务、分布式锁、集群管理。
-
配置管理
数据库链接等配置服务,通过zab协议使得分布式系统达成一致性
-
名字服务
通过指定的名字获取资源或者服务的地址,童工者的信息
-
分布式锁
控制分布式系统之间同步访问资源
-
集群管理
感知集群的变化,采取相应的措施
zookeeper的存储结构是树形的,每个节点为Znode,与unix文件系统结点相似,可以存储/获取该节点数据
znode节点:每个节点至多存储1M数据,并且可以通过ls,delete,get,set操作节点
节点类型:
- PERSISTENT 持久化节点: 在节点创建后,就一直存在,直到有删除操作来主动清除这个节点。
- PERSISTENT_SEQUENTIAL 持久顺序节点,与持久化节点基本一致,但他的父节点会为他的第一级子节点维护一份时序,记录每个节点创建顺序
- EPHEMERAL 临时节点 临时节点的生命周期和客户端会话绑定,会话结束,节点被清理掉
- EPHEMERAL_SEQUENTIAL 临时自动编号节点 带有顺序的临时节点
zookeeper特点
- 最终一致性:client 不论连接到哪个 Server,展示给它都是同一个视图
- 可靠性:如果消息 m 被到一台服务器接受,那么它 将被所有的服务器接受。
- 实时性:Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。
- 等待无关:慢的或者失效的 client 不得干预快速的 client 的请求,使得每 个 client 都能有效的等待。
- 原子性:更新只能成功或者失败,没有中间状态。
- 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息 a 在消息 b 前发布,则在所有 Server 上消息 a 都将在消息 b 前被发布;偏序是指如果一个消息 b 在消 息 a 后被同一个发送者发布,a 必将排在 b 前面。
zookeeper安装:
-
下载安装包:
Apache:https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
bit:https://mirrors.bit.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
-
安装
解压,并创建data,log文件夹
复制conf/zoo_sample.cfg文件为conf/zoo_cfg,修改配置
#修改 dataDir=D:/Tools/zookeeper/apache-zookeeper-3.7.0-bin/data #新增 dataLogDir=D:/Tools/zookeeper/apache-zookeeper-3.7.0-bin/log
-
启动
运行zhSever.cmd,启动
运行zhCli.cmd验证,出现
Welcome to ZooKeeper!
则启动成功