生产环境kafka平滑迁移之旅,有哪些细节需要注意?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2428个文字,预计阅读时间需要10分钟。
背景:线上kafka集群,3台机器,3个broker;其中某台机器因硬件故障,需停机维修;停机意味着该机器上的服务会停止。
目标:本次kafka迁移的目标是使机器可以停机维修,同时不依赖于kafka的上线服务。
具体步骤:
1.在其他两台正常运行的机器上启动broker,确保集群的可用性。
2.将故障机器上的数据迁移到其他机器。
3.停机故障机器,进行硬件维修。
4.维修完成后,将故障机器的数据迁移回原机器,并启动broker。
背景
线上kafka集群,3台机器,3个broker;其中某台机器因为硬件故障,需要停机维修;停机意味这跑在机器上的服务会停止。所以本次做kafka迁移的目标 是机器可以停止但依赖kafka的上游和下游业务可不能停止,因为所属行业的特殊性,服务的停止,对业务的影响和伤害还蛮大的。
分析
我们知道kafka是有高可用机制的。kafka的高可用机制,是靠分区多副本来保证的 :某个topic 的 leader分区挂了,kafka会从其它follower分区里,选择一个分区做为leader分区,继续对生产者和消费者提供读写服务。所以理论上,我们是可以停止某台机器上的kafka broker服务;kafka的broker 协调节点会自动切换其它follower分区为leader分区。
大概的过程是这样的,切换前:
切换后:
网上理论分析基本是这样了,但是以个人多年实战研发经验来看,每次的平衡迁移都不会是一次简单的事。
本文共计2428个文字,预计阅读时间需要10分钟。
背景:线上kafka集群,3台机器,3个broker;其中某台机器因硬件故障,需停机维修;停机意味着该机器上的服务会停止。
目标:本次kafka迁移的目标是使机器可以停机维修,同时不依赖于kafka的上线服务。
具体步骤:
1.在其他两台正常运行的机器上启动broker,确保集群的可用性。
2.将故障机器上的数据迁移到其他机器。
3.停机故障机器,进行硬件维修。
4.维修完成后,将故障机器的数据迁移回原机器,并启动broker。
背景
线上kafka集群,3台机器,3个broker;其中某台机器因为硬件故障,需要停机维修;停机意味这跑在机器上的服务会停止。所以本次做kafka迁移的目标 是机器可以停止但依赖kafka的上游和下游业务可不能停止,因为所属行业的特殊性,服务的停止,对业务的影响和伤害还蛮大的。
分析
我们知道kafka是有高可用机制的。kafka的高可用机制,是靠分区多副本来保证的 :某个topic 的 leader分区挂了,kafka会从其它follower分区里,选择一个分区做为leader分区,继续对生产者和消费者提供读写服务。所以理论上,我们是可以停止某台机器上的kafka broker服务;kafka的broker 协调节点会自动切换其它follower分区为leader分区。
大概的过程是这样的,切换前:
切换后:
网上理论分析基本是这样了,但是以个人多年实战研发经验来看,每次的平衡迁移都不会是一次简单的事。

