Kafka-Kraft模式
Kafka-Kraft模式
概述
Kafka-Kraft模式(Kafka Raft)是Apache Kafka的一种新的运行模式,旨在替代传统的ZooKeeper模式。Kraft模式将Kafka的元数据管理从ZooKeeper移除,转而使用Raft协议在Kafka自身内部管理元数据。这种变化简化了Kafka的部署和管理,提高了系统的一致性和可靠性。
架构变化:
- 左图为 Kafka现有架构,元数据在 zookeeper 中,运行时动态选举 controller,由controller进行Kafka集群管理。
- 右图为kraft模式架构(实验性),不再依赖zookeeper集群,而是用三台controller节点代替zookeeper,元数据保存在controller中,由controller直接进行Kafka集群管理。
优点:
简化部署:不再需要单独部署和维护ZooKeeper集群,降低了运维复杂性和成本。
一致性和可靠性:Raft协议提供了强一致性保证,确保元数据在多个节点之间的一致复制,提高了系统的可靠性。
高可用性:通过控制节点的多数共识机制,在少数节点故障的情况下仍能保证集群的正常运行。
性能优化:减少了Kafka与ZooKeeper之间的通信开销,可能带来性能上的提升。
具体安装
- 下载tgz安装包
- 解压:
tar -zxvf kafka_2.12-3.0.0.tgz
- 修改
config/kraft/server.properties
配置文件process/roles
:节点的角色,有broker和controller
可以同时选择node.id
:节点id,用于选举也需要保证唯一controller.quorun.voters
:controller选举的集群advertised.listeners
:对外暴露的broker地址log.dirs
:数据存储地址
- 初始化集群数据目录:
- 生成存储目录唯一id:
bin/kafka-storage.sh random-uuid
- 用该id格式化各个节点kafka存储目录:
bin/kafka-storage.sh format -t 上述id -c /usr/app/kafka_2.12-3.0.0/config/kraft/server.properties
- 生成存储目录唯一id:
- 启动各节点kafka:
kafka-server-start.sh -daemon /usr/app/kafka_2.12-3.0.0/config/kraft/server.properties
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 goMars的学习随记!
评论