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

为何在指定Kafka Broker创建的主题会出现在所有Broker中?

问题解析

先纠正一个认知偏差

你用的这个Docker Compose配置,实际是创建3个独立的单Broker Kafka集群,每个集群配了专属的ZooKeeper:

  • 集群1:zk1 + kafka1(对外端口9092)
  • 集群2:zk2 + kafka2(对外端口9093)
  • 集群3:zk3 + kafka3(对外端口9094)
    并不是你理解的“3个各含3个Broker的集群”。

为什么主题会在所有Broker列表里显示?

核心问题出在主题查询命令的端口指定错误:
你在9092对应的kafka1集群创建主题后,若查询其他集群主题时,依然用了--bootstrap-server 0.0.0.0:9092这个参数,那实际查的还是kafka1的主题列表,自然会看到这个主题。

正确的查询方式应该对应不同集群的端口:

  • 查kafka1的主题:kafka-topics.sh --list --bootstrap-server 0.0.0.0:9092
  • 查kafka2的主题:kafka-topics.sh --list --bootstrap-server 0.0.0.0:9093
  • 查kafka3的主题:kafka-topics.sh --list --bootstrap-server 0.0.0.0:9094

验证隔离性的方法

你可以在kafka2(9093)创建一个新主题,再分别用三个端口执行查询命令,就能看到不同集群的主题是完全隔离的——每个集群的主题只会出现在自身Broker的列表里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:15:22