1、背景:kafka的基本知识和基于kafka2.0 + zk模式的部署参考:

【Kafka】kafka的基本架构和安装配置_yaotengjian的博客-CSDN博客

2、基于kafka3.X后的集群搭建方式主要分为两种,一种是基于zookeeper管理方式,一种是基于kraft模式,本文主要介绍kafka-kraft集群模式搭建。

Apache Kafka

3、kraft模式:

Apache Kafka 不依赖 Apache Zookeeper的版本,被社区称之为 Kafka Raft 元数据模式,简称KRaft(craft)模式。

KRaft运行模式的Kafka集群,不会将元数据存储在 Apache ZooKeeper中。即部署新集群的时候,无需部署ZooKeeper集群,因为Kafka将元数据存储在 Controller 节点的 KRaft Quorum中。KRaft可以带来很多好处,比如可以支持更多的分区,更快速的切换Controller,也可以避免Controller缓存的元数据和Zookeeper存储的数据不一致带来的一系列问题。

4、krafr集群搭建:

1 生成唯一集群ID,使用bin目录下的kafka-storage.sh工具:./bin/kafka-storage.sh random-uuid 

2 格式化存储目录(如果是多个节点,则应该在每个节点上都分别运行format命令,以便格式化每台机器上的。请确保为每个集群使用相同的集群ID。):

./bin/kafka-storage.sh format -t OlVFHVhNToOPZOdOy02ISA -c ./config/kraft/server.properties

3 启动kafka: ./bin/kafka-server-start.sh -daemon config/kraft/server.properties

4、单机测试:bin/kafka-topics.sh --bootstrap-server ip:9092 --create --topic test-kraft --partitions 1 --replication-factor 1

 5、集群搭建:

依次增加至4台机器,注意格式化存储目录,确保每个集群使用相同的uuid。并且同步修改config/kraft/server.properties下面的node.id和controller.quorum.voters。

controller.quorum.voters这个配置标识有哪些节点是 Quorum 的投票者节点。所有想成为控制器的节点都需要包含在这个配置里面。这类似于在使用ZooKeeper时,使用ZooKeeper.connect配置时必须包含所有的ZooKeeper服务器。

格式:controller.quorum.voters=1@10.xxxx:9094......(id1@host1:port1,id2@host2:port2)

注意:集群其中一机报错:排查原因是在单机配置启动后,修改添加了controller.quorum.voters,解决办法是删除.../kafka-3.0/data/kraft-combined-logs/__cluster_metadata-0即可。整个过程没有用到zookeeper。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐