Kafka内部主题:内部主题在哪里创建-源代理还是目标代理?

问题描述

我们正在执行有状态操作。我们的集群是托管的。每次创建内部主题时,我们都必须要求管理员解锁,以便可以通过kafka流应用程序创建内部主题。我们可以控制目标群集而不是源群集。

因此,想了解内部主题是在哪个群集中创建的-源/目标吗?

解决方法

AFAIK,kafka-streams应用程序仅连接到一个集群,并且在那里创建了所有主题源/目标/内部主题。

,

到目前为止,Kafka Stream应用程序只能支持连接到Stream配置中BOOTSTRAP_SERVERS_CONFIG中定义的一个群集。

如上所述,所有源主题都位于这些代理中,并且所有内部主题(更改日志/分区主题)都在同一集群中创建。 KStream应用程序还将在同一群集中创建目标主题。

值得研究服务器日志以了解和分析实际的根本原因。

,

其他答案表明,Kafka Stream应用程序只能连接到一个集群。内部主题由Kafka流应用程序创建,并且仅由创建它的应用程序使用。但是,可能在Broker端设置了一些与安全性相关的配置,这可能阻止流应用程序创建这些主题:

如果在Kafka代理上启用了安全性,则必须授予基础客户端管理员权限,以便他们可以创建内部主题集。有关更多信息,请参见Streams Security。

引自here

要记住的另一点是,内部主题是由Stream应用程序自动创建的,并且没有用于自动创建内部主题的显式配置。