zookeeper是什么?
Zookeeper是一个分布式的协调服务架构,Zookeeper可以解决分布式环境下常见的一些问题:集群管理、统一命名服务、信息配置管理、分布式锁等功能。
集群管理
1.掌握集群服务器的数量
2.能够通过一定机制检查集群各个节点的状态,是正常还是宕机,比如通过RPC心跳机制
ZooKeeper的好处
1.简单的分布式协调过程
2.同步 - 服务器进程之间的相互排斥和协作。此过程有助于Apache HBase进行配置管理。
3.有序的消息
4.序列化 - 根据特定规则对数据进行编码。确保应用程序运行一致。这种方法可以在MapReduce中用来协调队列以执行运行的线程。
5.可靠性
6.原子性 - 数据转移完全成功或完全失败,但没有事务是部分的
zookeeper的节点类型
persistent 持久化节点
persistent_sequential 顺序自动编号持久化节点,这种节点会根据当前已存在的节点数自动加 1
ephemeral 临时节点, 客户端session超时这类节点就会被自动删除
ephemeral _sequential 临时自动编号节点
zookeeper的选举
当你在配置zookeeper集群的时候至少需要两台机器,但是你只有两台机器的时候效果不明显 所以在这里我拿三个机器做例子
初始化的时候我的1是leader 但是后来他宕机了
进行选举3就成为了新的leader
由于自己手画的图比较丑所以找了一个网上的图
开始选举 初始化选举
当节点zk2宕机了
zookeeper客户端的命令
1.创建一个节点
create /path /data
2.创建一个顺序节点
create -s /path /data
3.创建一个临时节点
create -e /path /data
4.获取数据
get /path
注意:获取顺序节点的数据 必须写出完整路径
5.检查节点的状态
stat /path
6.输出节点 包括子节点
rmr /path
只能删除没有子节点的节点
delete/path
7.创建节点及子节点
create /parentpath/path /data
8.查看节点所以子节点
ls /path