You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka MirrorMaker2日志报TopicExistsException警告是否正常?如何规避?

问题

使用Kafka MirrorMaker 2实现两个Kafka集群间的数据复制,启动服务一段时间后,connect.logs中针对每个主题都出现了多条如下警告日志:

[2023-06-19 03:00:16,712] WARN [MirrorSourceConnector|worker] Could not create topic trigger_process. (org.apache.kafka.connect.mirror.MirrorSourceConnector:381)
java.util.concurrent.CompletionException: org.apache.kafka.common.errors.TopicExistsException: Topic 'test_topic' already exists.
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
        at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:632)
        at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
        at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
        at org.apache.kafka.common.internals.KafkaCompletableFuture.kafkaCompleteExceptionally(KafkaCompletableFuture.java:49)
        at org.apache.kafka.common.internals.KafkaFutureImpl.completeExceptionally(KafkaFutureImpl.java:130)
        at org.apache.kafka.clients.admin.KafkaAdminClient$1.handleResponse(KafkaAdminClient.java:1629)
        at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.handleResponses(KafkaAdminClient.java:1268)
        at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.processRequests(KafkaAdminClient.java:1421)
        at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1344)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.kafka.common.errors.TopicExistsException: Topic 'test_topic' already exists.

请问该日志属于预期情况吗?有没有办法避免这类日志泛滥?

解答

该日志是否属于预期情况?

这属于预期行为。MirrorSourceConnector会定期检查目标集群中是否存在需要同步的主题,当发现主题已存在时,会抛出TopicExistsException并输出WARN级别的日志,但这种情况不会影响数据同步流程,只是Connector执行常规检查后的正常反馈。

如何避免这类日志泛滥?

可以通过以下几种方式解决:

  • 禁用Connector自动创建主题:在MirrorSourceConnector的配置中添加topic.creation.enabled=false,前提是目标集群的同步主题已提前创建完成(可通过脚本、Kafka Admin API或其他自动化工具批量创建)。配置后Connector将不再尝试创建主题,从根源上消除该警告。
  • 调整日志级别:修改Kafka Connect的日志配置(如log4j.properties),将org.apache.kafka.connect.mirror.MirrorSourceConnector的日志级别从WARN调整为ERROR,这样只有严重错误才会被记录,警告日志不再输出。配置示例:
log4j.logger.org.apache.kafka.connect.mirror.MirrorSourceConnector=ERROR
  • 升级Kafka版本:Kafka 2.8及以上版本优化了MirrorMaker 2的日志输出逻辑,针对已存在的主题,只会在第一次尝试创建失败时打印一次警告,不会重复输出。若当前使用的是2.7及以下版本,升级到更高版本可解决日志泛滥问题。

内容的提问来源于stack exchange,提问作者Shubham Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:07:34