使用RegexRouter SMT的 ReplicatorSourceConnector未对主题进行重命名
我在 RegexRouter SMT上遇到一个未重命名主题的问题。我正在使用Confluent的 ReplicatorSourceConnector 在集群之间复制消息并进行主题重命名。
现有设置
源主题:app.service-internal.events-backfilling-ids
目标主题:app.service.events-ingestion-ids
使用 RegexRouter SMT来重命名主题:
"connector.class": "io.confluent.connect.replicator.ReplicatorSourceConnector",
"topic.whitelist": "app.service-internal.events-backfilling-ids",
"transforms": "formatName",
"transforms.formatName.type": "org.apache.kafka.connect.transforms.RegexRouter",
"transforms.formatName.regex": "app\\.(.*)\\-internal\\.events-backfilling-ids",
"transforms.formatName.replacement": "app.$1.events-ingestion-ids"
....
问题
当使用 RegexRouter SMT时,连接器不会复制消息。然而,当我将 transforms.* 部分替换为 "topic.rename.format": "app.service.events-ingestion-ids" 时,复制工作正常,因此其余配置(安全性、转换器、集群连通性等)似乎没问题。
我还尝试在 transforms.* 字段的同时添加 "topic.rename.format": "${topic}",但无济于事。
解决方案
对于Confluent Replicator,优先考虑 topic.rename.format 用于主题重命名。对常规源连接器,请使用 RegexRouter,但不要指望它在Replicator内部的行为也是一样的。
由于在你的场景中 topic.rename.format 可用,我就保留它。它更简单、清晰,也更符合Replicator的期望配置模型。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。