Kafka KRaft 模式(无 ZooKeeper)是啥

Kafka KRaft 模式详解

什么是 KRaft 模式?

KRaft(Kafka Raft)模式是 Apache Kafka 的新架构,用 Kafka 自身的共识算法替代了 ZooKeeper 的依赖。

传统架构 vs KRaft 架构

传统架构(依赖 ZooKeeper)
复制代码
Kafka Brokers (多个)  ────> ZooKeeper 集群 (3-5节点)
       │                      │
   消息存储                元数据管理
   客户端通信              控制器选举
                       Topic/分区信息
KRaft 架构(无 ZooKeeper)
复制代码
Kafka Brokers (多个)  ────> Kafka Controllers (使用Raft共识)
       │                      │
   消息存储                元数据管理
   客户端通信              控制器选举
                       Topic/分区信息

KRaft 的核心概念

1. 节点角色

  • Controller 节点:负责集群元数据管理,使用 Raft 共识算法
  • Broker 节点:负责消息存储和客户端通信
  • Combined 节点:同时担任 Controller 和 Broker 角色

2. Raft 共识算法

  • 基于投票的领导者选举机制
  • 保证元数据的一致性和高可用
  • 需要奇数个 Controller 节点(1,3,5...)

KRaft 的优势

1. 简化架构

bash 复制代码
# 之前需要部署
Kafka集群 + ZooKeeper集群

# 现在只需要
Kafka集群(KRaft模式)

2. 性能提升

  • 元数据操作更快(减少网络跳转)
  • 启动时间更短
  • 支持更多分区(从 20万 → 到 200万+)

3. 运维简化

  • 减少组件依赖
  • 统一的监控和管理
  • 更简单的安全配置

配置示例

单节点开发环境(你之前的配置)

bash 复制代码
KAFKA_CFG_NODE_ID=0
KAFKA_CFG_PROCESS_ROLES=controller,broker
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093

三节点生产环境

bash 复制代码
# 节点1
KAFKA_CFG_NODE_ID=1
KAFKA_CFG_PROCESS_ROLES=controller,broker
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093

# 节点2
KAFKA_CFG_NODE_ID=2
KAFKA_CFG_PROCESS_ROLES=controller,broker
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093

# 节点3
KAFKA_CFG_NODE_ID=3
KAFKA_CFG_PROCESS_ROLES=controller,broker
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093

迁移考虑

何时使用 KRaft

  • 新集群:强烈推荐使用 KRaft
  • 开发测试环境:简化部署
  • ⚠️ 现有集群:需要迁移过程

版本要求

  • Kafka 3.3+:KRaft 生产就绪
  • Kafka 3.0-3.2:KRaft 早期版本(不推荐生产)

总结

KRaft 模式是 Kafka 的重要演进,它:

  • 消除了 ZooKeeper 依赖
  • 提升了性能和可扩展性
  • 简化了运维复杂度
  • 是 Kafka 未来的发展方向

你的配置正是一个典型的单节点 KRaft 模式,非常适合开发和测试使用!

相关推荐
Surpass余sheng军4 小时前
AI 时代下的网关技术选型
人工智能·经验分享·分布式·后端·学习·架构
哈哈哈笑什么8 小时前
企业级高并发分布式SpringCloud系统下,订单动态超时自动取消(最终成熟方案),使用spring-cloud-starter-stream-rabbit
分布式·spring cloud·rabbitmq
哈哈哈笑什么8 小时前
Sleuth+Zipkin 与 OpenSearch 结合是企业级分布式高并发系统的“王炸组合”
分布式·后端·spring cloud
RestCloud9 小时前
如何用ETL做实时风控?从交易日志到告警系统的实现
数据库·数据仓库·kafka·数据安全·etl·数据处理·数据集成
哈哈哈笑什么10 小时前
在高并发分布式SpringCloud系统中,什么时候时候并行查询,提高查询接口效率,从10s到100ms
java·分布式·后端
阿杰同学12 小时前
Hadoop 面试题及答案整理,最新面试题
大数据·hadoop·分布式
听风吟丶13 小时前
微服务分布式事务实战:从数据一致性到故障恢复全方案
分布式·微服务·架构
ClouGence14 小时前
从 0 到 1 构建 TDSQL MySQL 实时同步链路
数据库·分布式·sql·mysql
技术破壁人14 小时前
Kafka 的自动提交机制详解:Spring Boot 中如何正确使用?
kafka
哈哈哈笑什么14 小时前
完整Redis分布式锁技术方案(基于Redisson)
redis·分布式·spring cloud