【问题标题】:Is it possible to keep the original partitioning when replicating records with Kafka MirrorMaker 1?使用 Kafka MirrorMaker 1 复制记录时是否可以保留原始分区?
【发布时间】:2021-08-24 12:49:06
【问题描述】:
我们使用在 Azure 容器实例中运行的 Kafka MirrorMaker 1 将记录从 kafka 集群发送到 Microsoft Azure Eventhub。我们的主题有 10 个分区,我们在 Azure EventHub 中手动创建了一个名称和分区数相同的主题。不幸的是,这些记录在被 MirrorMaker 1 复制后失去了原来的分区。有没有办法使用 MirrorMaker 1 保留原来的分区?
【问题讨论】:
标签:
apache-kafka
azure-eventhub
azure-container-instances
apache-kafka-mirrormaker
【解决方案1】:
它没有;记录通过DefaultPartitioner 重新发送,特别是因为 MirrorMaker 不保证目标与源具有相同数量的分区。您需要编写自己的MirrorMakerMessageHandler 子类以适应保持分区相同的情况(请参阅--message.handler 和--message.handler.args CLI opts)。您也可以在此类中创建目标主题。
由于您可以选择运行任何容器,建议您切换到使用 MirrorMaker 2 运行 Kafka Connect 集群 - https://kafka.apache.org/documentation.html#georeplication