kafka descripe topic命令列出多个主题描述

mspsb9vt  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(389)

对主题运行以下命令 my.topic.test 对两者进行了描述 my.topic.test 以及 my.topic_test (注意名称中的点和下划线的区别)主题。
这是期望的行为还是bug(我倾向于bug)?

kafka-topics --describe --zookeeper my_zookeeper_ip:2181 --topic my.topic.test
Topic:my.topic.test        PartitionCount:4        ReplicationFactor:1     Configs:
    Topic: my.topic.test       Partition: 0    Leader: 2       Replicas: 2     Isr: 2
    Topic: my.topic.test       Partition: 1    Leader: 3       Replicas: 3     Isr: 3
    Topic: my.topic.test       Partition: 2    Leader: 4       Replicas: 4     Isr: 4
    Topic: my.topic.test       Partition: 3    Leader: 0       Replicas: 0     Isr: 0
Topic:my.topic_test        PartitionCount:5        ReplicationFactor:4     Configs:
    Topic: my.topic_test       Partition: 0    Leader: 4       Replicas: 3,4,5,1       Isr: 4,1,3
    Topic: my.topic_test       Partition: 1    Leader: 4       Replicas: 1,3,4 Isr: 4,1,3
    Topic: my.topic_test       Partition: 2    Leader: 4       Replicas: 4,2,5,3       Isr: 4,3,2
    Topic: my.topic_test       Partition: 3    Leader: 4       Replicas: 5,1,4 Isr: 4,1
    Topic: my.topic_test       Partition: 4    Leader: 1       Replicas: 5,1,3,0       Isr: 1,0,3
hiz5n14c

hiz5n14c1#

什么时候跑步 --describe , kafka-topics 接受正则表达式作为 --topic 争论。在正则表达式中, . 匹配任何字符,以便看到预期的行为。
也就是说,kafka topics在创建带有点或下划线的主题时会打印一条警告,并且应该阻止创建两个带有此类名称的主题,因为度量会发生冲突:

WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.

你是如何创建主题的?

rdlzhqv9

rdlzhqv92#

首先,这不是虫子。根据主题部分《Kafka源》中Kafka-10.2的源代码,

val legalChars = "[a-zA-Z0-9\\._\\-]"
  private val maxNameLength = 249
  private val rgx = new Regex(legalChars + "+")

主题名称的最大长度可以是249个单词,并且它的处理点(.)和下划线(\)是相等的。这就是主题名称
my.topic.test,my.topic\u test,my\u topic.test是相同的。您应该使用(\下划线或点(.)但不是两者都有。
为了获得最佳实践,我建议您使用连字符(-),就像我喜欢使用的那样。

相关问题