根据文档(https://docs.confluent.io/current/streams/developer-guide/manage-topics.html#internal-topics),内部主题遵循命名约定<application.id>-<operatorName>-<suffix>
。
我们有一些示例:
testapplication-KSTREAM-REDUCE-STATE-STORE-0000000008-分区
testapplication-KSTREAM-REDUCE-STATE-STORE-0000000027-分区
有人知道如何确定整数吗?
很遗憾,我们的安全要求不允许我们使用应用程序创建主题,因此需要提前进行设置。我正在尝试确定这些主题名称是否一致。
答案 0 :(得分:1)
通常,中间主题名称是按照以下约定构造的:
sed
后缀值可以是“ changelog”或“ repartition”
基于运算符,它使用后缀之一。这是一个示例:
testapplication-aggregate-repartition
testapplication-aggregate-changelog
答案 1 :(得分:0)
您是否已看过这些命令来设置Streams内部主题的ACL。我相信它们是作为Kafka v2.x.x(confluent doc)的一部分引入的
# Allow Streams to manage its own internal topics and consumer groups:
bin/kafka-acls ... --add --allow-principal User:team1 --operation All --resource-
pattern-type prefixed --topic team1-streams-app1 --group team1-streams-app1
因此,您只需要知道steams application.id,这是所有内部主题的前缀。
我相信您会授予全部权限,也将允许其创建。
答案 2 :(得分:0)
要回答有关主题名称是否一致的问题,以我的经验,在应用程序的执行之间,主题名称一直是一致的,但是,如果您在逻辑中修改,添加或删除任何联接或约简的顺序,则主题名称可能会更改。
答案 3 :(得分:0)
要回答您关于整数的主要问题,这就是我在文档中找到的内容:
<块引用>数字是一个全局递增的数字,代表 算子在拓扑中的顺序。生成的号码有前缀 使用不同数量的“0”来创建一个始终如一的字符串 10 个字符长。
这是 kafka 流 DSL 的一个非常重要的方面,如果您更改拓扑,可能会导致一些问题。为您的有状态运算符命名是一个好习惯。
您可以在 dsl-topology-naming 篇文章中找到更多信息
答案 4 :(得分:-1)
整数是内部生成的。
您可以在此处找到记录的文件:
https://docs.confluent.io/current/streams/javadocs/index.html
在groupBy的方法描述下,它表示:
由于选择了新密钥,因此将在Kafka中创建内部重新分区主题。该主题的名称为“ $ {applicationId}- XXX -repartition”,其中“ applicationId”是用户在StreamsConfig中通过参数APPLICATION_ID_CONFIG指定的,“ XXX”是内部生成的名称,“-repartition”是固定后缀。您可以通过Topology.describe()检索所有生成的内部主题名称。