KafkaKraft模式

2023年 7月 16日 35.3k 0

Kafka-Kraft模式介绍

Kafka 2.8.0 正式发布了Kraft的先行版,并且支持在Kraft模式下的部署和运行。KRaft模式下的Kafka可以完全脱离zookeeper运行,使用自己的基于Raft算法实现的quorum来保证分布式Metadata的一致

wps1

左图为Kafka现有架构,元数据在zookeeper中,运行时动态选举controller,由controller进行Kafka集群管理。右图为kraft模式架构(实验性),不再依赖zookeeper集群,而是用三台controller节点代替zookeeper,元数据保存在controller中,由controller直接进行Kafka集群管理。

这样做的好处有以下几个:

  • Kafka不再依赖外部框架,而是能够独立运行;
  • controller管理集群时,不再需要从zookeeper中先读取数据,集群性能上升;
  • 由于不依赖zookeeper,集群扩展时不再受到zookeeper读写能力限制;
  • controller不再动态选举,而是由配置文件规定。这样我们可以有针对性的加强controller节点的配置,而不是像以前一样对随机controller节点的高负载束手无策。

集群部署

环境说明:

  • Kafka 版本:3.0.0
  • 三节点部署

1、安装Kafka

tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/
cd /opt/module/
ln -s kafka_2.12-3.0.0/ kafka

2、修改配置文件

]# vim kafka/config/kraft/server.properties 
#kafka的角色(controller相当于主机、broker节点相当于从机,主机类似zk功能)
process.roles=broker, controller
#节点ID(不同节点配置不同)
node.id=1
#controller服务协议别名
controller.listener.names=CONTROLLER
#全Controller列表
controller.quorum.voters=1@kafka01:9093,2@kafka02:9093,3@kafka03:9093
#不同服务器绑定的端口
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
#broker服务协议别名
inter.broker.listener.name=PLAINTEXT
#broker对外暴露的地址(不同节点配置不同)
advertised.Listeners=PLAINTEXT://kafka01:9092
#协议别名到安全协议的映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
#kafka数据存储目录
log.dirs=/opt/module/kafka/data
  • 在kafka02和kafka03上需要对node.id相应改变,值需要和controller.quorum.voters对应。
  • 在kafka02和kafka03上需要根据各自的主机名称,修改相应的advertised.Listeners地址。

3、初始化集群数据目录

(1)首先生成存储目录唯一ID

[root@kafka01 kafka_2.12-3.0.0]# ./bin/kafka-storage.sh random-uuid
_nOVlsByS8qnh4sFJEKvgg

(2)用该ID格式化Kafka存储目录(三台节点)

[root@kafka01 kafka_2.12-3.0.0]# ./bin/kafka-storage.sh format -t _nOVlsByS8qnh4sFJEKvgg -c /opt/module/kafka/config/kraft/server.properties 
[root@kafka02 kafka_2.12-3.0.0]# ./bin/kafka-storage.sh format -t _nOVlsByS8qnh4sFJEKvgg -c /opt/module/kafka/config/kraft/server.properties 
[root@kafka03 kafka_2.12-3.0.0]# ./bin/kafka-storage.sh format -t _nOVlsByS8qnh4sFJEKvgg -c /opt/module/kafka/config/kraft/server.properties 

4、启动集群

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

5、停止集群

bin/kafka-server-stop.sh

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论