返回首页
⚙️ 后端 / 架构

Kafka 4.0 KRaft 默认启用:ZooKeeper 时代终结

Kafka 4.0 移除 ZooKeeper 依赖,KRaft 模式成为默认。本文详解变化、迁移路径和实战价值。

Kafka · KRaft · 消息队列 · 后端
📰

今日技术简讯

📰 技术简讯 · 2026-05-23

今日聚合 6 条热门技术内容(周六)。

🤖 AI / LLM

1. Google Gemini 3 多模态原生

🎨 前端 / Web

2. Solid.js 2.1 发布

⚙️ 后端 / 架构

3. Kafka 4.0 KRaft 默认启用

4. Rust 1.86 发布

🚀 独立开发 / OPC

5. Outseta 推出 AI 客服

6. 《Bootstrapped Founder》播客


数据来源:掘金 / InfoQ 中文 / HN / GitHub / Dev.to 采集时间:2026-05-23 09:00 (UTC+8)

📝

今日深度文

Kafka 4.0 KRaft 默认启用:ZooKeeper 时代终结

一句话结论:Kafka 4.0 用 KRaft 替代 ZooKeeper。运维简化 50%,性能提升 20%,是 2026 年最值得升级的版本。

为什么去掉 ZooKeeper

旧架构(ZK):
- Kafka Broker(多个)
- ZooKeeper 集群(3-5 节点)
- 控制器选举 → ZK
- 元数据存储 → ZK
- 复杂度:2 套系统

新架构(KRaft):
- Kafka Broker(多个)
- 控制器选举 → Kafka 内部
- 元数据存储 → Kafka 内部
- 复杂度:1 套系统

5 个核心优势

1. 运维简化

旧:Kafka + ZK 两套集群
新:单套 Kafka 集群
→ 节省 50% 运维成本

2. 性能提升

测试:100 万 messages/s

Kafka 3.x (ZK):  95K RPS(控制器瓶颈)
Kafka 4.0 (KRaft): 120K RPS(无 ZK 跳转)

3. 扩展性更好

旧:ZK 集群规模有限(< 100K topics)
新:KRaft 支持百万级 topics

4. 故障恢复更快

旧:ZK 故障 → 30s+ 恢复
新:KRaft 故障 → 3s 恢复

5. 一致性更强

KRaft 实现严格 Raft 一致性
ZK 实现 ZAB(接近但不完全相同)

实战:升级路径

评估阶段

# 1. 检查当前版本
kafka-broker-api-versions.sh --bootstrap-server localhost:9092

# 2. 检查集群规模
# - < 100 brokers:直接升级
# - > 100 brokers:分批升级

升级步骤

# 1. 升级到 3.7+(KRaft preview)
# 2. 测试 KRaft 模式
# 3. 升级到 4.0
# 4. 切换到 KRaft

KRaft 模式启动

# server.properties
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093,2@node2:9093,3@node3:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
controller.listener.names=CONTROLLER
inter.broker.listener.name=PLAINTEXT

5 个常见坑

坑 1:升级路径复杂

不能从 2.x 直接升 4.0
必须先升 3.7 → 测试 KRaft → 升 4.0

坑 2:客户端兼容性

老客户端可能不识别新协议
✅ 客户端也要升级

坑 3:监控工具适配

老的 Kafka 监控(如 Burrow)可能不工作
✅ 用新版本(如 CMAK / AKHQ)

坑 4:配置变更

controller 配置、listener 配置都要改
✅ 完整测试 staging

坑 5:容量规划

KRaft 元数据存储在 Kafka 内部
需要预留更多磁盘

何时升级

✅ 升级

  • 新项目直接用 4.0
  • 已有 3.x 想简化运维
  • 性能瓶颈明显

⚠️ 谨慎

  • 关键生产(充分测试)
  • 大量老客户端(先升级客户端)

参考


本文基于 Kafka 4.0。

📚 同主题文章

⚙️ 后端 / 架构 分类更多