0


Kafka 集群 KRaft 模式搭建

一、Kafka 集群 KRaft 介绍

Kafka

KRaft

模式是一种新的元数据管理方式,旨在去除对

ZooKeeper

的依赖,使

Kafka

成为一个完全自包含的系统。在

Kafka

的传统模式下,元数据管理依赖于

ZooKeeper

,这增加了部署和运维的复杂性。为了解决这个问题,

Kafka

社区引入了

KRaft

模式。在

KRaft

模式下,所有的元数据,包括主题、分区信息、副本位置等,都被存储在

Kafka

集群内部的特殊日志中。这个日志使用

Raft

协议来保证一致性。

在这里插入图片描述

在左边架构中,

Kafka

集群包含多个

Broker

节点和一个

ZooKeeper

集群。

Kafka

集群的

Controller

在被选中后,会从

ZooKeeper

中加载它的状态。并且通知其他

Broker

发生变更,如

Leaderanddis

r和

Updatemetdata

请求。

右边新的架构中,三个

Controller

节点替代三个

ZooKeeper

节点。

Controller

节点和

Broker

节点运行在不同的进程中。

Controller

节点中会选举出一个

Leader

角色。并且

Leader

不会主动向

Broker

推送更新,而是由

Broker

拉取元数据信息。

注意:

Controller

进程与

Broker

进程在逻辑上是分离的,同时允许部分或所有

Controller

进程和

Broker

进程是同一个进程,即一个

Broker

节点即是

Broker

也是

Controller

下面主要实践下

Kafka

集群

KRaft

模式下的搭建。

二、Kafka 集群 KRaft 模式搭建

部署规划如下:
hosthostnamerolenode id11.0.1.146node1Broker,Controller111.0.1.147node2Broker,Controller211.0.1.148node3Broker,Controller3
以下操作三台机器均需要执行。

配置

hosts

vi /etc/hosts
11.0.1.146   node1
11.0.1.147   node2
11.0.1.148   node3

下载安装包:

wget https://archive.apache.org/dist/kafka/3.4.0/kafka_2.13-3.4.0.tgz

解压:

tar-zxvf kafka_2.13-3.4.0.tgz

创建数据存储目录:

cd kafka_2.13-3.4.0
mkdir data

修改

config/kraft/server.properties

配置文件,注意

node.id

advertised.listeners

根据不同的机器编码填写,主要修改内容如下:

vi config/kraft/server.properties
process.roles=broker,controller
node.id=1controller.quorum.voters=1@node1:9093,2@node2:9093,3@node3:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
inter.broker.listener.name=PLAINTEXT
advertised.listeners=PLAINTEXT://node1:9092
controller.listener.names=CONTROLLER

在这里插入图片描述

生成集群唯一标志

ID

,官方提供了

kafka-storage

工具可以生成唯一

ID

,也可以自己生成一个唯一的

ID

bin/kafka-storage.sh random-uuid

在这里插入图片描述

使用唯一标志

ID

初始化存储路径:

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

在这里插入图片描述

KRaft

模式启动服务:

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

观察日志是否启动成功:

tail-f logs/server.log

在这里插入图片描述

三、环境测试

查看

Broker

情况:

bin/kafka-broker-api-versions.sh --bootstrap-server node1:9092,node2:9092,node3:9092

在这里插入图片描述

测试创建

topic

bin/kafka-topics.sh --create--topictest--partitions3 --replication-factor 2 --bootstrap-server node1:9092,node2:9092,node3:9092

在这里插入图片描述

查看

topic

的情况:

bin/kafka-topics.sh --describe  --bootstrap-server node1:9092,node2:9092,node3:9092

在这里插入图片描述

发送

Topic

消息测试:

bin/kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topictest

在这里插入图片描述

消费者消费消息:

bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --topictest

在这里插入图片描述

标签: kafka 分布式

本文转载自: https://blog.csdn.net/qq_43692950/article/details/139391027
版权归原作者 小毕超 所有, 如有侵权,请联系我们删除。

“Kafka 集群 KRaft 模式搭建”的评论:

还没有评论