kafka搭建kraft集群模式

kafka2.8之后不适用zookeeper进行leader选举,使用自己的controller进行选举

1.准备工作

准备三台服务器 192.168.3.110 192.168.3.111 192.168.3.112,三台服务器都要先安装好jdk1.8,配置好环境变量, 下载好kafka3.0.0二进制压缩包
解压后进入conf/kraft目录下,修改server.properties文件
在这里插入图片描述

2.修改配置文件

先修改110节点,主要修改下面的几个参数 node.id要唯一,跟leader选举有关系
在这里插入图片描述
数据存储位置也要改一下
在这里插入图片描述
其他111和112服务器也按照改一下,把node.id改一下,ip也要改成对应的ip

3.初始化集群
在其中一台服务器上执行下面命令生成一个uuid

sh kafka3.0.0/bin/kafka-storage.sh random-uuid

在这里插入图片描述
用该uuid格式化kafka存储目录,三台服务器都要执行以下命令

sh kafka3.0.0/bin/kafka-storage.sh format -t 5Wr3UWh9SPGFUfX1WQlzAA -c kafka3.0.0/config/kraft/server.properties

在这里插入图片描述
三台服务器都启动kafka

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

在这里插入图片描述
集群启动之后,创还能一个tipic测试,在哪一台服务器上创建都行

sh kafka3.0.0/bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic kafka --partitions 3 --replication-factor 3

在这里插入图片描述
查看tipoc分区情况

sh kafka3.0.0/bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe kafka

在这里插入图片描述
这时候把111节点kafka关掉,会重新选举,从ar里面第一个,并且在isr中存活的副本成为leader,112成为分区2的leader
在这里插入图片描述

### 安装配置 Apache Kafka KRaft 模式的指南 #### 准备工作 为了确保顺利安装和配置Kafka KRaft模式,需先确认环境满足最低要求。建议的操作系统版本为Linux或MacOS,并已安装Java Development Kit (JDK),因为Kafka依赖于Java运行时环境[^2]。 #### 下载并解压软件包 访问Apache官方网站下载最新稳定版的Kafka压缩文件。完成下载后,在目标目录下执行如下命令来解压该文件: ```bash tar -xzf kafka_2.13-3.0.0.tgz cd kafka_2.13-3.0.0 ``` 此操作会创建一个包含所有必要组件的新文件夹。 #### 修改配置文件 进入`config/`子目录编辑名为`server.properties`的主要设置文档。对于启用KRaft协议而言,最重要的更改之一是在这个文件里指定控制器监听器名称以及定义节点ID: ```properties process.roles=broker,controller node.id=<unique_node_id> listeners=PLAINTEXT://:9092 inter.broker.listener.name=PLAINTEXT controller.quorum.voters=<comma_separated_list_of_controller_nodes> listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT num.partitions=1 default.replication.factor=1 min.insync.replicas=1 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 log.retention.hours=168 zookeeper.connect=localhost:2181 # Remove this line when using KRaft mode. delete.topic.enable=true ``` 请注意移除任何涉及ZooKeeper连接字符串(`zookeeper.connect`)的相关条目,因为在KRaft模式下不再需要ZooKeeper服务。 #### 初始化元数据日志 在首次启动之前,必须初始化内部使用的控制平面日志结构。这一步骤通过调用特定脚本来完成: ```bash bin/kafka-storage.sh format -t <cluster_uuid> -c config/kraft/server.properties ``` 这里`<cluster_uuid>`应该替换为唯一标识符,可以通过随机生成获得;而路径参数则指向刚才修改过的服务器属性文件位置。 #### 启动集群成员 现在可以依次开启各个Broker实例了。假设已经按照上述指导调整好了三个不同机器上的相应设定,则可以在每台主机上分别运行下面这条指令: ```bash bin/kafka-server-start.sh config/kraft/server.properties & ``` 一旦看到类似“Kafka Server started”的提示信息显示出来即表示单个节点成功加入到整个集群当中去了[^1]。 #### 测试连通性和功能验证 最后一步是对新搭建起来的服务做基本的功能测试。比如发送几条消息给主题topic再读取它们回来查看是否正常运作无误。如果一切顺利的话就说明Kafka KRaft集群已经被正确设置了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值