使用Confluent Replicator在每个分区中的订购保证

时间:2019-12-30 05:35:43

标签: apache-kafka confluent-platform apache-kafka-mirrormaker

我们的系统中需要维护Kafka主题分区内记录的正确顺序和记录顺序。 正如我们在测试运行中观察到的那样,Kafka Mirror不提供分区中的订购保证。记录倾向于在源和目标群集主题之间乱序。

我们计划将Confluent Replicator用于跨集群数据复制。在Confluent社区版本5.3.1的测试运行中,已观察到源主题和目标主题保持了完全相同的分区及其各自的记录计数。 (复制器在单线程配置上运行)

但是,复制器是否可以保证分区中记录的确切顺序? 而且,如果我增加复制线程的数量以实现并行性和提高吞吐量,它是否仍可以保证排序(即使在一个线程失败的情况下)?

1 个答案:

答案 0 :(得分:0)

MirrorMaker(1.0)将使用DefaultPartitioner重新分区数据,因此,您要获取“乱序数据”的唯一方法是让生产者覆盖其分区器。此外,MirrorMaker不保证目标主题与源主题具有相同数量的分区或配置

Replicator和MirrorMaker 2.0 (可用于Kafka 2.4.0)保留输入分区计数和主题配置。订单以及其他任何消费群体均得到保证。但是,由于网络传输错误的极端情况,有可能在交付过程中多次生成记录。

与其他任何应用程序一样,增加连接器任务将向该组添加更多使用者,并且输入和输出分区应匹配