首页/数据/数据工程与 ETL 速查/KRaft 模式(无 ZooKeeper)
Kafka64 条

KRaft 模式(无 ZooKeeper)

KRaft 用内置的 controller quorum 取代 ZooKeeper 管理元数据:Kafka 3.3 起可用于生产,4.0 起仅支持 KRaft;新集群部署直接用 KRaft。

角色process.roles=broker / controller / broker,controller(单机合设)
元数据日志化的元数据 quorum,元数据变更提交后生效
版本3.3+ 生产可用;4.0 起不再支持 ZooKeeper

格式化存储并启动(KRaft 单节点示例)

格式化存储并启动(KRaft 单节点示例)
KAFKA_CLUSTER_ID=$(kafka-storage.sh random-uuid)
kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties
kafka-server-start.sh config/kraft/server.properties
已有 ZooKeeper 集群迁移到 KRaft 需要按官方迁移流程操作,不能直接把配置改成 KRaft 启动。

易错点

  • format 会初始化存储目录,重复对已有数据目录执行相当于清库,务必核对 -c 配置路径
  • controller quorum 节点数为 3 或 5 才能容忍单点故障,单节点仅限测试

数据来源与参考

  • Apache Kafka 官方文档:KRaft 与 ZooKeeper 迁移(KIP-500)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌