Kafka-Kraft 模式


左图为kafka现有架构,元数据在zookeeper中,运行时动态选举controller,由controller进行kafka集群管理,右图为kraft模式架构(实验性),不再依赖zookeeper集群,而是用三台controller节点代替zookeeper,元数据保存在controller中,由controller直接2进行kafka集群管理
好处:
1、kafka不再依赖外部框架,二十能够独立运行
2、controller管理集群时,不再需要从zookeeper中先读取数据,集群性能上升
3、由于不依赖zookeeper,集群拓展不再收到zookeeper读写能力限制
4、controller不再东药选举,而是由配置文件规定,这样我们可以针对性的加强controller节点的配置,而不是像以前一样对随机controller节点的高负债束手无策

部署

修改配置

解压
修改config/kraft/server.properties下的
注意路径

vim config/kraft/server.properties



修改这4个地方
分发 修改其他节点的node.id=2和advertised.Listeners

初始化集群

bin/kafka-storage.sh random-uuid

用该 ID (id要相同)格式化 kafka 存储目录,三台机器都要执行

bin/kafka-storage.sh format -t qtUYZ6KhQ5mlAxIg-T0M5w -c /usr/local/src/kafka/kraft/kafka_2.12-3.0.0/config/kraft/server.propertie

启动命令

bin/kafka-server-start.sh -daemon config/kraft/server.properties

停止命令

bin/kafka-server-stop.sh

脚本

#! /bin/bashcase $1 in"start"){ for i in hadoop100 hadoop101 hadoop102 do echo " --------启动 $i Kafka2-------" ssh $i "/usr/local/src/kafka/kraft/kafka_2.12-3.0.0/bin/kafka-server-start.sh -daemon /usr/local/src/kafka/kraft/kafka_2.12-3.0.0/config/kraft/server.properties" done};;"stop"){ for i in hadoop102 hadoop103 hadoop104 do echo " --------停止 $i Kafka2-------" ssh $i "/usr/local/src/kafka/kraft/kafka_2.12-3.0.0/bin/kafka-server-stop.sh " done};;esac