Apache Kafka KRaft - Kafka 存储工具

Kin*_*ord 4 apache-kafka

文档中提到:

如上面快速入门部分所述,您必须使用 kafka-storage.sh 工具为新集群生成集群 ID,然后在启动节点之前在每个节点上运行 format 命令。

生成集群ID

./bin/kafka-storage.sh random-uuid
xtzWWN4bTjitpL3kfd9s5g
Run Code Online (Sandbox Code Playgroud)

格式化存储目录

./bin/kafka-storage.sh format -t <uuid> -c ./config/kraft/server.properties
Formatting /tmp/kraft-combined-logs
Run Code Online (Sandbox Code Playgroud)

<uuid>用不同的程序生成而不是用原来的程序生成会有问题吗kafka-storage.sh

cri*_*007 7

它需要是一个类型 4 UUID,与 Kafka 的内部 UUID 不匹配

来自 Kafka 源代码

    /**
     * Static factory to retrieve a type 4 (pseudo randomly generated) UUID.
     */
    public static Uuid randomUuid() {
        java.util.UUID uuid = java.util.UUID.randomUUID();
        while (uuid.equals(METADATA_TOPIC_ID_INTERNAL) || uuid.equals(ZERO_ID_INTERNAL)) {
            uuid = java.util.UUID.randomUUID();
        }
        return new Uuid(uuid.getMostSignificantBits(), uuid.getLeastSignificantBits());
    }
Run Code Online (Sandbox Code Playgroud)

  • https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/tools/StorageTool.scala ,方便参考 (2认同)