我需要将我们的生产Kafka集群迁移到一个容量更大的新集群,并且一直在研究如何在不停机的情况下做到这一点。
This video很有帮助,但从我对使用MirrorMaker 2的理解来看,在某个时候不可避免地会出现停机,无论是在复制到新的Kafka集群后将消费者切换到新的Kafka集群,还是当您将生产者切换到新的集群并且不再使用原始集群时。
有没有人在这方面有经验,可以提供一些见解?
据我所知,最接近无停机的选择是设置并行集群,包括每个集群的应用程序、消费者和生产者。这显然是非常资源密集型的,但有人知道是否有更好的方法吗?
为了给予更多细节,我计划在我当前的集群上打开MirrorMaker 2,我们可以称之为集群A,以将数据/消费者偏移复制到我在打开MM 2之前设置并创建所有必要主题的新集群(集群B)。MM 2将仅在配置为发送A-〉B的情况下打开。
谢谢,让我知道如果我可以提供更多的细节。
1条答案
按热度按时间uelo1irk1#
对于迁移的基础来说,它应该工作得很好。不要关闭源。你将不会有任何停顿。您的替代解决方案是简单地将硬件添加到 * 现有群集 *。然后使用
kafka-reassign-partitions
增加所有分区、所有主题等的复制。然后通过跟踪ISR来进行复制,然后运行相同的命令来删除旧的副本/代理。在后一种情况下,客户机不需要将引导服务器更改为新集群,直到您最终停用旧名称。这就是为什么要为客户端添加一个TCP反向代理来进行交互,而不是在任何配置中单独设置代理。