我正在尝试确定是否可以将自定义分区器与 mirrormaker 2 一起使用,因此在复制到目标集群时使用了我的自定义分区器。根据这里的文档https://github.com/apache/kafka/tree/trunk/connect/mirror应该可以使用配置格式 target-alias.producer.* 覆盖 mm2 生产者设置,我已经尝试了各种格式,例如(源和目标是我的集群别名)
target.partitioner.class=com.my.custom.Partitioner
target.producer.partitioner.class=com.my.custom.Partitioner
target.cluster.producer.partitioner.class=com.my.custom.Partitioner
source->target.partitioner.class=com.my.custom.Partitioner
source->target.producer.partitioner.class=com.my.custom.Partitioner
我可以在 mirrormaker 2 日志中看到分区器已成功加载,并且在生产者配置被转储的地方,似乎设置了自定义分区器类。但是,根据我的分区程序类(和观察)中的调试日志,它仅在 mirrormarker 2 生成到内部主题(如 mm2-offsets.source.internal)时被调用,而不是在生成到被复制到的实际主题时被调用。
谁能帮我理解上面的行为?我假设有单独的生产者客户端,一些负责编写复制的消息,一些负责更新内部主题,但如果是这样,不确定为什么自定义分区器只适用于后者。