温馨提示×

kafka集群debian咋配

小樊
46
2026-10-18 13:36:16
栏目: 智能运维

下面给你一份**在 Debian 上部署 Kafka 集群(多 broker)**的实战配置示例,基于 Kafka 3.x + Kafka 自带的 KRaft 模式(不依赖 ZooKeeper),这是目前推荐方式。如果你要用 ZooKeeper 模式我也可以补。


一、环境准备(所有节点都要做)

假设 3 台 Debian 机器:

主机名 IP
kafka1 192.168.1.11
kafka2 192.168.1.12
kafka3 192.168.1.13

1. 安装 JDK

sudo apt update
sudo apt install -y openjdk-17-jdk
java -version

2. 创建用户(可选但推荐)

sudo useradd -m kafka
sudo su - kafka

3. 下载 Kafka

cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.1/kafka_2.13-3.7.1.tgz
sudo tar -xzf kafka_2.13-3.7.1.tgz
sudo mv kafka_2.13-3.7.1 kafka
sudo chown -R kafka:kafka /opt/kafka

二、KRaft 集群配置(重点)

1. 生成 Cluster ID(任意一台执行)

/opt/kafka/bin/kafka-storage.sh random-uuid

输出类似:

ABC123DEF456

2. 每个节点配置 server.properties

路径:

/opt/kafka/config/kraft/server.properties

kafka1

node.id=1
controller.quorum.voters=1@192.168.1.11:9093,2@192.168.1.12:9093,3@192.168.1.13:9093

listeners=PLAINTEXT://192.168.1.11:9092,CONTROLLER://192.168.1.11:9093
advertised.listeners=PLAINTEXT://192.168.1.11:9092

controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT

log.dirs=/opt/kafka/data
process.roles=broker,controller

kafka2

node.id=2
controller.quorum.voters=1@192.168.1.11:9093,2@192.168.1.12:9093,3@192.168.1.13:9093

listeners=PLAINTEXT://192.168.1.12:9092,CONTROLLER://192.168.1.12:9093
advertised.listeners=PLAINTEXT://192.168.1.12:9092

controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT

log.dirs=/opt/kafka/data
process.roles=broker,controller

kafka3

node.id=3
controller.quorum.voters=1@192.168.1.11:9093,2@192.168.1.12:9093,3@192.168.1.13:9093

listeners=PLAINTEXT://192.168.1.13:9092,CONTROLLER://192.168.1.13:9093
advertised.listeners=PLAINTEXT://192.168.1.13:9092

controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT

log.dirs=/opt/kafka/data
process.roles=broker,controller

3. 格式化存储(每台都要)

/opt/kafka/bin/kafka-storage.sh format \
  -t ABC123DEF456 \
  -c /opt/kafka/config/kraft/server.properties

三、启动 Kafka

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

查看日志:

tail -f /opt/kafka/logs/server.log

四、验证集群

创建 Topic

/opt/kafka/bin/kafka-topics.sh \
  --create \
  --topic test \
  --partitions 3 \
  --replication-factor 3 \
  --bootstrap-server 192.168.1.11:9092

查看 Topic

/opt/kafka/bin/kafka-topics.sh \
  --describe \
  --topic test \
  --bootstrap-server 192.168.1.11:9092

五、Systemd(推荐)

[Unit]
Description=Kafka
After=network.target

[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka

六、常见问题

  • 端口不通:检查防火墙 9092 / 9093
  • node.id 重复:每个节点必须唯一
  • Cluster ID 不一致:所有节点必须相同

如果你想要:

  • ZooKeeper 老版本配置
  • SASL / SSL 安全配置
  • Docker / k8s 部署
  • 生产参数调优

直接告诉我你用在测试还是生产。

0 踩