【问题标题】:What are Apache Kafka topic name limitations?什么是 Apache Kafka 主题名称限制?
【发布时间】:2016-08-31 23:13:38
【问题描述】:

我刚刚尝试创建一个 Kafka 主题 "user:created",并在 Kafka 日志中看到了这个错误:Invalid character ':' in value part of property。我搜索了一下,发现在一个邮件列表中,人们也在谈论弃用 ._ 符号。

Apache Kafka 主题名称中不能使用哪些符号?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    根据source code for kafka 10

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

    因此,最大长度为 255 个符号和字母,.(点)、_(下划线)、-(减号)可以使用used

    在 Kafka 0.10 中,maxNameLength 从 255 更改为 249。请参阅 commit

    此外,带有句点 . 或下划线 _ 的主题可能会在内部数据结构中发生冲突,因此建议您使用其中一个,但不要同时使用 (source)。

    【讨论】:

    • '.'和 '' 是允许的,但应该被视为相同的字符。 “警告:由于指标名称的限制,带有句点 ('.') 或下划线 ('') 的主题可能会发生冲突。为避免出现问题,最好使用其中之一,但不要同时使用。”
    • 从提交的主题名称限制为249的原因:“每个分片分区日志都放在Kafka日志目录下的自己的文件夹中。此类文件夹的名称由主题名称组成,附加由破折号 (-) 和分区 id 组成。由于典型的文件夹名称不能超过 255 个字符,因此主题名称的长度会有限制。我们假设分区数量永远不会超过 100000。因此, 主题名称不能超过 249 个字符。这样可以在文件夹名称中留出足够的空间来放置破折号和可能的 5 位数长分区 ID”
    • 嗨@phreed,有没有办法摆脱这个“烦人”的警告?请不要告诉我不要使用下划线,因为我想将它们用于“可读性”目的;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2017-09-29
    • 2020-08-12
    • 2022-11-29
    相关资源
    最近更新 更多