Zookeeper 集群入门

1.概念

ZooKeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心:服务生产者将自己提供的服务注册到 ZooKeeper 中心,服务的消费者在进行服务调用的时候先到 ZooKeeper 中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据。Zk的数据保存在内存中,限制了znode节点的数据存储量。

通常 3 台服务器就可以构成一个 ZooKeeper 集群了,为什么最好使用奇数台服务器构成 ZooKeeper 集群?我们知道在 ZooKeeper 中 Leader 选举算法采用了 Zab 协议:当多数(过半原则) Server 写成功,则任务数据写成功。

角色描述
LeaderLeader服务器是zk集群工作机制的核心,事务请求的唯一调度者和处理者,保证集群事务请求处理的顺序性
FollowerFollower服务器是zk集群状态的跟随者,处理非事务请求,转发事务请求给Leader服务器,参与事务请求的proposal投票,参与Leader选举投票
ObserverObserver是一种新型的zk节点,Observer服务器只提供非事务服务.通常用于不影响集群事务处理能力的前提下提升集群的非事务的处理能力,Observer有另外一个优势,因为它不参与投票,所以他们不属于zk集群的关键部位,即使他们Failed,或者从集群中断开,也不会影响集群的可用性

sid:服务器id(myid)
zxid:事务操作序列号
epoch:选举次数
集群初始化时,任何节点都没有事务操作,zxid和epoch任何节点都是一样的,不同的只是sid。此时进行投票sid最大的并且过半时作为leader。1,2,3:2;1,2,3,4,5:3
集群运行时,此时每个节点已经有了事务操作,zxid已经有值,那么就不能考虑sid,zxid更大的数据更完整,所以应当优先考虑为leader;此时zxid一样再以sid较大的作为leader。

2.安装

选择版本:apache-zookeeper-3.6.2-bin.tar.gz

2.1准备

需要开启相应端口:

名称host
zookeeper服务2181
数据同步2888
节点选举3888

firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
systemctl restart firewalld.service
通过命令:firewall-cmd --list-ports查看是否成功

zookeeper需要依赖jdk1.8才能运行,不会的可移步:Centos7 安装 Java8

2.2下载

cd /usr/local/src
wget -c https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
mv apache-zookeeper-3.6.2-bin /usr/local/zookeeper-3.6.2

2.3配置

需要将zookeeper下的/conf目录中zoo_sample.cfg重命名为zookeeper默认的配置文件:zoo.cfg

mv zoo_sample.cfg zoo.cfg

修改需要的配置

dataDir=/usr/local/zookeeper-3.6.2/data
dataLogDir=/usr/local/zookeeper-3.6.2/logs
#server.服务序列号=ip.follower与leader服务器交换信息的端口(数据同步用):follower与leader服务器选举端口
server.1=192.168.37.101:2888:3888
server.2=192.168.37.102:2888:3888
server.3=192.168.37.103:2888:3888

根据上方zoo.cfg中的dataDir,创建/data目录和myid文件,内容分别是配置中server的服务序列号(1、2、3)

mkdir /usr/local/zookeeper-3.6.2/data
vim /usr/local/zookeeper-3.6.2/data/myid

3.启动

使用./bin/zkServer.sh start进行启动,使用./bin/zkServer.sh status查看服务状态

在这里插入图片描述
在这里插入图片描述
使用官方提供的控制台去进行节点的查看:ZooInspector在这里插入图片描述
在这里插入图片描述
链接指定的zookeeper./bin/zkCli.sh -server 192.168.37.101,通过命令create /test "123"创建一条数据,通过命令ls /进行节点的查看在这里插入图片描述
刷新zookeeper控制台同样可见:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值