Zookeeper集群搭建以及zab协议

单机环境下,jdk zookeeper安装完毕,基于一台虚拟机,进行zookeeper的伪集群搭建,zookeeper集群中包含三个节点,节点对外提供服务端口号分别为2181,2182,2183

  1. 基于zookeeper-3.4.10复制三份zookeeper安装好的服务器文件,目录名称分别为zookeeper2181,zookeeper2182,zookeeper2183
cp -r zookeeper-3.4.10 zookeeper2181
cp -r zookeeper-3.4.10 zookeeper2182
cp -r zookeeper-3.4.10 zookeeper2183
  1. 修改zookeeper2181服务器对应配置文件.
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/home/zookeeper/zookeeper2181/data
# the port at which the clients will connect
clientPort=2181
# 集群配置信息
# server.A = B:C:D
# A 是一个数字,表示这个服务器的编号
# B 是这个服务器的ip地址
# C zookeeper服务器之间的通信端口
# D leader选举的端口
server.1=192.168.60.130:2287:3387
server.2=192.168.60.130:2288:3388
server.3=192.168.60.130:2289:3389
  1. 在上一步dataDir指定的目录下,创建myid文件,然后在该文件添加上一步sever配置文件对应的数字
#zookeeper2181对应的数字为1
# /home/zookeeper/zookeeper2181/data目录下执行命令
echo "1" > myid
  1. zookeeper2182,zookeeper2183参照步骤2/3进行相应的配置
  2. 分别启动三台服务器,检查集群状态
    登录命令
    ./zkCli.sh -server 192.168.60.130:2181
    ./zkCli.sh -server 192.168.60.130:2182
    ./zkCli.sh -server 192.168.60.130:2183
    

一致性协议:ZAB协议

ZAB协议的全称是Zookeeper Atomic Broadcast (zookeeper原子广播) zookeeper是通过zab协议来保证分布式事务的最终一致性
基于zab协议 zookeeper集群中的角色主要右以下三类

角色 描述
领导者 领导者负责进行投票的发起和决议,更新系统状态
跟随着(Follower) Follower用于接收客户端请求并向客户端返回结果,在选举过程中参与投票
观察者(Observer) Observer可以接收客户端连接,将写请求转发给leader节点,但是observer不参与投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度
客户端 请求发送方

zab广播模式工作原理,通过类似两阶段提交协议的方式来解决数据的一致性;
在这里插入图片描述

  1. leader从客户端接受一个写请求
  2. leader生成一个新的事务并未该事务生成一个唯一的zxid
  3. leader将这个事务提议(propose)发送给所有follows节点
  4. follower节点将接收的事务请求加到历史队列中,并发送ack给leader;
  5. 当leader接收到大多数follower(半数以上节点)的ack消息时,leader就会发送commmit请求
  6. 当follower收到commit请求时,从历史队列中将事务请求commit;

猜你喜欢

转载自blog.csdn.net/qq_43079376/article/details/108698800