Kafka 4.1.0部署 (KRaft模式)

words: 488    views:    time: 2min

Kafka 4.1.0部署配置

集群部署

下载kafka_2.13-4.1.0.tgz,https://kafka.apache.org/downloads

  • 分别修改kafka配置
kafka1/config/server.properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# The role of this server. Setting this puts us in KRaft mode
process.roles=broker,controller

# The node id associated with this instance's roles
node.id=1

# List of controller endpoints used connect to the controller cluster
controller.quorum.voters=1@127.0.0.1:9097,2@127.0.0.1:9098,3@127.0.0.1:9099

listeners=PLAINTEXT://:9092,CONTROLLER://:9097
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER

advertised.listeners=PLAINTEXT://localhost:9092

log.dirs=/Users/shanhuiming/zooenv/kafka4.1.0/kafka1/data
  • 分别设置data目录
1
2
3
4
5
# 找一个节点获取uuid
bin/kafka-storage.sh random-uuid

# 使用生成的uuid,分别给三个节点初始化data目录
bin/kafka-storage.sh format --cluster-id AdqhtOERSymkCzOoOvtU0A --config config/server.properties
  • 分别启动kafka
1
bin/kafka-server-start.sh -daemon config/server.properties

本地测试

  • 创建Topic
1
./kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
  • 查看Topic
1
./kafka-topics.sh --describe --bootstrap-server localhost:9092
  • 收发消息
1
2
3
4
5
## 打开终端发送消息
./kafka-console-producer.sh --topic test --bootstrap-server localhost:9092

## 打开终端消费消息
./kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092

KRaft模式说明

KRaft模式取代了Kafka使用ZooKeeper进行集群管理的方式,按照Raft协议内容,节点会被分为控制节点、数据节点。

  • 控制节点:在control plane中操作,使用基于Raft的共识协议管理集群元数据和集群状态
  • 数据节点:在数据平面中运行,管理消息流,接收和存储数据在主题分区中
  • 双重角色:节点即管理管理集群元数据,也管理业务主题数据

控制节点使用元数据日志,在每个节点上存储为单分区主题(__cluster_metadata),记录集群的状态。当发出更改集群配置的请求时,由Leader控制节点负责元数据日志的更新,并同步给其它节点。

  • 使用专用控制节点进行集群管理

  • 使用双角色节点进行集群管理


参考: