ZooKeeper基础

ZooKeeper的选举机制

①半数机制(Paxos协议):集群 中半数 以上机器 存活,集群可用。所有zookeeper适合装在奇数台机器上。
②ZooKeeper虽然在配置文件中并没有指定master和slave。但是 ,zookeeper工作时,是有一个节点为leader,其他则为follower,Leader是通过内部的选举机制临时产生的。
③以一个简单的例子来说明 整个选举的过程。
	假设有五台服务器组成的zookeeper集群,他们的id从1-5,同时他们都是最新启动的,也就没有历史数据,在存放数据量这一点上,都是一样的。假设 这些服务器依序启动,来看看会发生  什么。
	![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122308382576.png)

(1)服务器1启动,此时只有它一台服务器启动了,他发出去的报告没有任何响应,所以它的选举状态一直是LOOKING状态。
(2)服务器2启动,它与最开始启动的 服务器1进行通信,相互交换自己的 选举结果,由于两者都没有历史数据,所以id值较大的 服务器2胜出,但是由于没有达到超过半数以上的 服务器都同意选举它(这个例子中的半数 以上是3),所以服务器1、2还是继续保持LOOKING状态。
(3)服务器3启动,根据 前面的理论分析,服务器3成为 服务器1、2、3中的老大,而与上面不同得是,此时有三台服务器选举了它,所以它成为了这次选举的leader。
(4)服务器4启动,根据前面 的分析,理论上服务器4应该是服务器1、2、3、4中的最大的,但是由于前面已经有一半以上的服务器选举了服务器3,所以它只能接收当小弟的命。
(5)服务器5启动,同4一样是小弟。

ZooKeeper的监听 原理

(1)首先要有一个main()线程
(2)在main线程中创建Zookeeper客户端,这时就会 创建两个线程 ,一个负责 网络连接通信(connet),一个负责监听(listener)。
(3)通过connect线程将注册的监听 时间发送给Zookeeper。
(4)在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中。
(5)Zookeeper监听到 有数据或路径变化,就会将这个消息发送给listener线程。
(6)listener线程内部调用了process()方法

ZooKeeper的部署方式有哪几种?集群中的角色有哪些?集群最少需要几台机器?

(1)单机模式、伪集群模式和集群模式
(2)Leader和Follower
(3)3台

ZooKeeper的常用命令

ls
create
get
delete
set

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值