kafka-3.8.0三节点集群(KRaft协议)

Kafka3.8.0的KRaft 模式使用 config/kraft/server.properties 作为配置文件。本文将采用合并模式,即每个节点同时承担 Broker 和 Controller 角色(process.roles=broker,controller),这是三节点生产环境的推荐配置

一、下载安装包

tar -zxvf kafka_2.13-3.8.0.tgz -C /usr/local

cd /usr/local/kafka_2.13-3.8.0

二、修改config/kraft/server.properties配置

node01上

vi config/kraft/server.properties ,修改配置

复制代码
# 节点角色:同时作为 Broker 和 Controller
process.roles=broker,controller

# 节点唯一标识
node.id=1

# Controller 通信端口监听
controller.listener.names=CONTROLLER

# 监听器配置
listeners=PLAINTEXT://:9092,CONTROLLER://:9093

# 对外公布地址(重要:使用主机名或 IP)
advertised.listeners=PLAINTEXT://node01:9092

# 集群所有 Controller 节点列表(格式:id@host:port)
controller.quorum.voters=1@node01:9093,2@node02:9093,3@node03:9093

# 数据存储目录
log.dirs=/data/kafka-logs

# 安全协议映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

# Broker 间通信使用的监听器
inter.broker.listener.name=PLAINTEXT

node02上配置(修改 node.id=2 和 advertised.listeners 中的主机名)

复制代码
process.roles=broker,controller
node.id=2
controller.listener.names=CONTROLLER
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://node02:9092
controller.quorum.voters=1@node01:9093,2@node02:9093,3@node03:9093
log.dirs=/data/kafka-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
inter.broker.listener.name=PLAINTEXT

node03上配置(修改 node.id=3 和 advertised.listeners 中的主机名)

复制代码
process.roles=broker,controller
node.id=3
controller.listener.names=CONTROLLER
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://node03:9092
controller.quorum.voters=1@node01:9093,2@node02:9093,3@node03:9093
log.dirs=/data/kafka-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
inter.broker.listener.name=PLAINTEXT

三、格式化存储并启动集群

1、生成集群 ID(仅在 node01 执行一次)

复制代码
bin/kafka-storage.sh random-uuid  

执行后会输出一个 UUID,例如:hCbNlQp-RSySfQp-RSySfQ,请记录此 UUID,后续步骤需要用到

2、格式化存储目录(所有节点执行)

复制代码
bin/kafka-storage.sh format -t <集群UUID> -c config/kraft/server.properties

3、启动 Kafka 服务(所有节点执行)

复制代码
# 后台启动
bin/kafka-server-start.sh -daemon config/kraft/server.properties
 
# 或前台启动(用于观察启动日志)
bin/kafka-server-start.sh config/kraft/server.properties

4、验证集群状态

复制代码
# 查看集群元数据状态
bin/kafka-metadata-quorum.sh --bootstrap-server node01:9092 describe --status
 
# 查看 Broker 列表
bin/kafka-broker-api-versions.sh --bootstrap-server node01:9092

其他命令

复制代码
# 查看集群元数据状态
bin/kafka-metadata-quorum.sh --bootstrap-server node01:9092 describe --status

# 查看 Broker 列表
bin/kafka-broker-api-versions.sh --bootstrap-server node01:9092

# 查看topic列表
bin/kafka-topics.sh  --list  --bootstrap-server  localhost:9092 
相关推荐
数智启示录5 小时前
Apache Kafka Consumer 扩到 40 个仍不提速:Partition 上限锁死有效并行度 【Kafka合集】
数据库·经验分享·分布式·缓存·面试·kafka·apache
数智启示录5 小时前
Apache Kafka 幂等 Producer 的边界:Exactly-Once 到了 MySQL 为什么失效 【Kafka合集】
数据库·经验分享·分布式·mysql·面试·kafka·apache
数智启示录6 小时前
Apache Kafka 不只是消息队列:日志与 Offset 分离如何让事件可重放 【Kafka合集】
经验分享·分布式·面试·kafka·apache
数智启示录6 小时前
Apache Kafka 同 Key 仍会乱序:从分区 Offset 到业务可见的四道边界 【Kafka 合集】
大数据·数据库·经验分享·分布式·面试·kafka·apache
BYSJMG6 小时前
大数据毕业设计选题推荐:基于大数据的全球气温历史演变分析与可视化,用Hadoop+Spark处理
大数据·hadoop·分布式·信息可视化·spark·kmeans·课程设计
爱吃苹果的梨叔6 小时前
AI 算力监控中心怎么建?分布式坐席 + 大屏联动 + 过程回放
人工智能·分布式·python
無a伟6 小时前
RabbitMQ :与AMQP的关系、核心组件、交换机类型
分布式·rabbitmq
老周聊架构8 小时前
Flink 连接器与生态:Kafka Offset 提交修复与 MySQL Binlog 延迟指标
mysql·flink·kafka
jyOverQ11 小时前
RabbitMQ 消息积压怎么办?Prefetch、消费者并发与扩容
分布式·后端·rabbitmq
爱浦路 IPLOOK21 小时前
矿山无人化作业5G专网方案:企业专网核心网络选型分析
网络·分布式·科技·5g·信息与通信