迁移实践之Zookeeper

迁移背景

因环境迁移,需对已有Zookeeper进行环境迁移,考虑当前Zookeeper为单节点规格,可靠性存在缺陷,将利用此次迁移升级为三节点的集群版本

迁移思路

将三台新节点与旧的一台节点组成一个集群,然后停掉旧节点。

迁移步骤

一、安装部署

a. 安装Zookeeper服务,安装命令参考如下:

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
mv apache-zookeeper-3.7.0-bin /usr/local/zookeeper
apt install openjdk-8-jre-headless -y                         //安装Java
echo "ZOO_LOG_DIR=/data/zookeeper/logs" > /user/local/zookeeper/conf/zookeeper-env.sh  //定义日志目录
mkdir -p /data/zookeeper/data              //创建zookeeper数据目录

b.依次在四台节点上创建myid文件

echo "1" > /data/zookeeper/data/myid       //新节点1
echo "2" > /data/zookeeper/data/myid       //新节点2
echo "3" > /data/zookeeper/data/myid       //新节点3
echo "4" > /data/zookeeper/data/myid       //旧节点

c.依次在四个节点上的zookeeper/config目录下,创建或调整zoo.cfg文件,内容如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
clientPort=2181
server.1=x.x.x.x:2888:3888
server.2=x.x.x.x:2888:3888
server.3=x.x.x.x:2888:3888
server.4=x.x.x.x:2888:3888
// server.1~3为新节点,server.4为旧节点

二、重启&启动节点

注:首先重启旧节点,然后根据myid从小到大依次启动三个新节点,确保旧节点为leader

【知识点】

1、zookeeper选举是依据当前集群可用节点的myid的大小,最大者为leader。

2、数据同步是由leader向follower节点单向同步,所以第一次启动,务必确保旧节点为leader,不然会导致集群数据丢失

3、节点重启顺序遵循myid先小后大,先follower后leader,myid最的节点如果最后重启,会无法加入集群。因为 zookeeper myid大的节点可以主动连接myid小的节点,但myid小但节点无法主动连接myid大的节点

4、zookeeper集群可以支持不同版本节点

三、旧节点退出

在旧节点上执行echo mntr|nc localhost 2181 命令,确认zk_followers 和 zk_synced_followers两个参数是否都是3,如果是没问题 ,停止旧节点zookeeper服务,依次删除三个新节点zoo.cfg文件中的server.4配置,根据myid由小到大,依次重启三个节点。

常用命令

echo mntr|nc localhost 2181     //查看集群情况,请在leader上查看,主要关注zk_followers和zk_synced_followers
./zkServer.sh start | stop | restart | status        //分别是zookeeper启动、停止、重启、状态

集群模式的迁移

集群迁移比单点迁移集群更加简单和平滑,安装部署问题不再重复,参考上,主要赘述步骤。

1、新节点配置myid和zoo.cfg,myid顺延已有id,加入集群

2、集群旧节点修改zoo.cfg,将新的节点加入配置,按照myid从小到大,先follower后leader的原则,依次重启

3、确认leader选举到新节点,依次修改新节点zoo.cfg配置,将旧节点server信息删除,然后依次重启新节点

  1. 确认集群状态没有异常后,停机旧节点

参考文档:https://cloud.tencent.com/developer/article/1406912

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值