Kafka消息迁移

5lwkijsr  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(363)

我们目前正在运行apachekafka 0.10.1.1。我们正在迁移到汇合平台5.x。新集群完全设置在不同的物理节点集上。
当我们已经在升级api时,我们的应用程序使用 spring-boot ,我们正在尝试找出如何迁移消息?我需要在目标集群中保持相同的消息顺序。
我能简单地复制这些信息吗?
我是否需要将消息重新发布到目标群集以成功保留?
还能做什么?

l5tcr1uw

l5tcr1uw1#

假设新集群中的主题定义完全相同(即:分区的nbr、保留等),并且消息键上的生产者散列函数将消息传递到同一个分区(如果您有空键,那么这将是一个麻烦,因为它将在随机分区中结束),您可以简单地从最早的kafka代理主题开始消费,并使用定制的使用者/生产者或类似工具在新集群中生成新主题 logstash .
如果您想额外确保获得相同的排序,则每个主题只能使用一个使用者,如果使用者支持单线程运行,则更好(可能避免赛车条件)。
您也可以尝试更常见的解决方案,如mirrormaker,但请注意,mirrormaker订购保证相当于:
但是,mirrormaker进程将保留并使用消息键进行分区,以便在每个键的基础上保留顺序。
注意:如第一个解决方案中所述,正如cricket\u007所说,只有在使用默认分区器并且希望在新集群中继续使用它时,它才会工作。
最后,如果一切正常,您可以手动复制旧kafka代理的使用者偏移量,并在新集群使用者组上定义它们。
免责声明:这纯粹是理论上的。我从未尝试过有这种硬要求的迁移。

7xzttuei

7xzttuei2#

confluent包括一个名为replicator的工具,虽然它是一种企业功能,但您可以使用它进行为期30天的试用,以执行数据迁移。
但本质上,是的,你唯一能做的就是从一个集群消费,然后生产到另一个集群。在不太理想的网络条件下,您可能会在目的地获得重复的数据,但这只是使用平台的一种折衷。
如果可能的话,我建议首先将融合的3.x匹配组件添加到现有集群中。或者干脆先单独对券商进行滚动升级。我的观点是,没有什么可以“迁移到合流”,因为kafka并没有改变什么,您只需要在它周围添加其他进程,比如schema registry或control center

相关问题