kafka的kraft模式
以前的kafka元数据保存在zk上,运行动态选举controller,由controller进行对kafka的集群管理.
kraft模式,不在依赖zk集群,而是用三台controller节点代替zk,元数据保存在controller中,由controller直接对kafka集群进行管理
- kafka不在依赖外部框架独立运行
- controller管理集群时,不在从zk中先读取数据,集群性能提升
- 不依赖zk,集群的拓展也不受zk读写能力限制
- controller不在动态选举,而是由配置文件规定,可以有针对性的加强controller节点配置
使用kraft搭建集群
-
修改config/kraft/server.properties文件
#kafka 的角色(controller 相当于主机、broker 节点相当于从机,主机类似 zk 功 能) process.roles=broker, controller #节点 ID 注意其他机器需要修改不能重复 node.id=1 #controller 服务协议别名 controller.listener.names=CONTROLLER #全 Controller 列表 node.id@IP:PORT controller.quorum.voters=1@node1:9093,2@node2:9093,3@node3:9093 #不同服务器绑定的端口 listeners=PLAINTEXT://:9092,CONTROLLER://:9093 #broker 服务协议别名 inter.broker.listener.name=PLAINTEXT #broker 对外暴露的地址 注意其他机器需要修改 advertised.Listeners=PLAINTEXT://node2:9092 #协议别名到安全协议的映射 listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLA INTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL #kafka 数据存储目录 log.dirs=/usr/local/kafka/kafka_2.12-3.2.0/data
-
初始化集群数据目录
-
生成存储目录唯一ID bin/kafka-storage.sh random-uuid
-
用该 ID 格式化 kafka 存储目录(所有节点)
bash bin/kafka-storage.sh format -t J7s9e8PPTKOO47PxzI39VA -c /usr/local/kafka/kafka_2.12-3.2.0/config/kraft/server.properties
-
-
启动kafka集群bin/kafka-server-start.sh -daemon config/kraft/server.properties