Zookpeer

本文详细介绍了Zookpeer的功能,包括统一管理、服务器选举过程、节点创建(永久/临时/带序号)、监听数据变化和写数据策略。重点阐述了选举机制和集群状态管理。
摘要由CSDN通过智能技术生成

1、Zookpeer功能

统一命名服务
统一配置管理
统一集群管理
服务器的动态上下线
软负载均衡

2、Zookpeer选举

第一次选举

假设有五台服务器
(1)服务器 1 启动,发起一次选举;投自己一票,不够半数,选举无法完成,服务器状态保持为LOOKING

(2)服务器 2 启动,再次发起选举,服务器 1 和 2 分别投自己一票,并交换选票信息;此时服务器 1 发现服务器 2 的 myid 比自己目前投票推举的(服务器1)大,更改选票为推举服务器2,此时服务器1票数0票,服务器2票数2票,没有半数以上,选举无法完成,服务器 1,2 状态保持为LOOKING

(3)服务器 3 启动,发起一次选举,此时服务器 1 和 2 会更改选票为服务器3,此次投票结果,服务器 1 为 0 票,2 为 0 票,3 为 3 票,此时服务器3的票数已经超过半数,服务器 3 当选leader,服务器1,2更改状态为FOLLOWING,服务器 3 更改状态为LEADING

(4)服务器 4 启动,发起一次选举,此时服务器1,2,3已经不是LOOKING状态,不会更改选票信息,交换选票信息结果,服务器 3 为 3 票,服务器 4 为 4 票,此时服务器4服从多数,更改选票信息为服务器3,并更改状态为FOLLOWING

(5)服务器 5 和服务器 4 一样,为FOLLOWING

leader挂掉之后再次选举

在一台机器进入leader流程时,当前集群可能会处于以下两种状态
(1)集群中已经存在一个leader
重新连接leader,直到连上为止

(2)集群中不存在leader
根据EPOCH,ZXID,SID进行选举
EPOCH:任期代号
ZXID:事务ID
SID:服务器ID
EPOCH->ZXID->SID

3、Zookpeer操作

(1)创建永久不带序号节点

create /test "test"
create /test/test1 "test"

(2)获取节点信息

get -s /test

(3)创建永久带序号节点

create -s /test "test"

(4)创建临时节点

create -e /test "test"

(5)创建带序号的临时节点

create -e -s /test "test"

(6)修改某个节点值

set  /test "test"

4、Zookpeer监听

4.1 Zookpeer监听原理

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

4.2 Zookpeer监听命令行操作

(1)监听节点值变化

get -w /test

注意:注册一次监听,只能监听一次,想要再次监听,需要再次注册
(2)监听节点数变化

ls -w /test

5、Zookpeer写数据

5.1 直接请求Leader

在这里插入图片描述

5.2 请求Follower

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值