在我的几个集群上,我看到 zookeeper 返回的主题列表与代理相比存在差异,即以下命令返回不同的(在代理的情况下更少)结果
kafka-topics.sh --zookeeper $zookeeper --list
kafka-topics.sh --bootstrap-server $broker --command-config $clientProperties --list
我已经在多个客户端版本中看到了这种行为,这让我认为问题出在服务器端,但我不知道根本原因是什么或如何解决它。
这给我带来了一个问题,因为我正在使用一些代码,这些代码使用代理进行 GET 操作,如列出主题,以及使用 zookeeper 进行 SET 操作(创建/更新主题)。如果代理未在列表中返回主题,则代码路径会导致针对 zookeeper 的 CREATE 操作,该操作将被拒绝(它将失败)。不幸的是,我不控制代码,所以我不能在那里应用修复。
尽管如此,zookeeper 中的主题列表肯定应该与代理中的列表相同吗?
我正在使用 Kafka (Amazon MSK) 版本 2.2.1