kafka依赖_kafka依赖的zookeeper迁移方案

背景

随着公司的发展,迁移机房这种事必不可少的会发生。这里描述一下kafka依赖的zk从腾讯云迁移到美团云的的实施方案。腾讯云部署了一个5台物理机构成的zookeeper集群,目前此集群使用方:hadoop、kafka、部分需要梳理的业务方。

腾讯云的机器在迁移到美团云之后需要下线,现有使用方对此zookeeper的依赖需要做处理,目前得到的结论如下:

hadoop:明确不再使用此zookeeper集群,不需要迁移;

kafka:需要迁移此zookeeper集群的数据;

业务方:需要梳理,并明确如何处理;

迁移方案

方案一

  1. 在美团云新建3台zk节点,新的3台zk的server list加入现有5台zk节点,组成8台zk节点;
  2. 启动美团云的3台zk节点,等待数据同步完成;
  3. 重新配置美团云3台zk节点,改成只有美团云3个节点的server list配置,整体stop,整体start;
  4. 更新kafka配置到美团云机房的3台zk机器,整体重启;

优点:操作简单,对现有zk集群没有侵入。

缺点:需要kafka集群整体重启,对kafka读写用户会产生抖动,需要配合停止写入;

方案二

  1. 在美团云新建3台zk节点,新的3台zk的server list加入现有5台zk节点,组成8台zk节点;
  2. 更新kafka配置到美团云机房的3台zk机器,轮询重启;
  3. 美团云机房3台节点更新配置到5台server list,这5台中需要包含当前集群的leader节点(这里命名为PreLeader,此节点目前还在腾讯云),轮询重启(此时从PreLeader的视角集群还是8台,但是从美团云3台节点的视角集群是5台);
  4. 从腾讯云机房的5个节点中选择3台节点下线(PreLeader节点不能下掉,此时无论哪个视角集群都处于健康状态);
  5. 通过下线腾讯云机房剩余的2个zk节点,让leader节点回到美团云机房的某台节点(此时集群处于5台存活3台的状态);
  6. 选一台腾讯云zk节点,更新配置server list为美团云3节点和自身组成的4个节点并启动(此时集群处于5台存活4台的状态);
  7. 更新美团机房节点的配置文件为美团机房的3台节点,轮询重启非leader的两台节点(每次重启处于5台存活3台状态);
  8. 下线步骤6中启动的腾讯云机房的zk节点,重启美团云机房的leader节点;
  9. 至此,美团云zk节点的配置都是美团云的3台zk节点,完成迁移。

优点:

kafka可以平滑轮询重启;

缺点:

1、对现有zk有侵入,需要下线现有zk,需要其他zk使用方确认是否可下线(如果其他使用方也要用此方案,则不可行,风险较大);

2、操作流程复杂;

结论

以上两个方案比较后,决定采用方案一,可控性和外部依赖较小;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值