confluent包括一个名为replicator的工具,虽然它是一种企业功能,但您可以使用它进行为期30天的试用,以执行数据迁移。 但本质上,是的,你唯一能做的就是从一个集群消费,然后生产到另一个集群。在不太理想的网络条件下,您可能会在目的地获得重复的数据,但这只是使用平台的一种折衷。 如果可能的话,我建议首先将融合的3.x匹配组件添加到现有集群中。或者干脆先单独对券商进行滚动升级。我的观点是,没有什么可以“迁移到合流”,因为kafka并没有改变什么,您只需要在它周围添加其他进程,比如schema registry或control center
2条答案
按热度按时间l5tcr1uw1#
假设新集群中的主题定义完全相同(即:分区的nbr、保留等),并且消息键上的生产者散列函数将消息传递到同一个分区(如果您有空键,那么这将是一个麻烦,因为它将在随机分区中结束),您可以简单地从最早的kafka代理主题开始消费,并使用定制的使用者/生产者或类似工具在新集群中生成新主题
logstash
.如果您想额外确保获得相同的排序,则每个主题只能使用一个使用者,如果使用者支持单线程运行,则更好(可能避免赛车条件)。
您也可以尝试更常见的解决方案,如mirrormaker,但请注意,mirrormaker订购保证相当于:
但是,mirrormaker进程将保留并使用消息键进行分区,以便在每个键的基础上保留顺序。
注意:如第一个解决方案中所述,正如cricket\u007所说,只有在使用默认分区器并且希望在新集群中继续使用它时,它才会工作。
最后,如果一切正常,您可以手动复制旧kafka代理的使用者偏移量,并在新集群使用者组上定义它们。
免责声明:这纯粹是理论上的。我从未尝试过有这种硬要求的迁移。
7xzttuei2#
confluent包括一个名为replicator的工具,虽然它是一种企业功能,但您可以使用它进行为期30天的试用,以执行数据迁移。
但本质上,是的,你唯一能做的就是从一个集群消费,然后生产到另一个集群。在不太理想的网络条件下,您可能会在目的地获得重复的数据,但这只是使用平台的一种折衷。
如果可能的话,我建议首先将融合的3.x匹配组件添加到现有集群中。或者干脆先单独对券商进行滚动升级。我的观点是,没有什么可以“迁移到合流”,因为kafka并没有改变什么,您只需要在它周围添加其他进程,比如schema registry或control center