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/bash
case $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