温馨提示×

ubuntu kafka配置怎样集群

小樊
39
2026-09-29 18:00:58
栏目: 智能运维

下面给你一份在 Ubuntu 上搭建 Kafka 集群的实用配置示例(以 Kafka 3.x + KRaft 模式为主,也补充 ZooKeeper 模式区别)。


一、环境准备(3 台 Ubuntu 示例)

假设 3 台机器:

主机名 IP
kafka1 192.168.1.11
kafka2 192.168.1.12
kafka3 192.168.1.13

每台都执行:

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

下载 Kafka:

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 /opt/kafka

二、KRaft 模式 Kafka 集群(推荐)

1️⃣ 生成 Cluster ID

在 任意一台 执行:

KAFKA_CLUSTER_ID=$(/opt/kafka/bin/kafka-storage.sh random-uuid)
echo $KAFKA_CLUSTER_ID

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 $KAFKA_CLUSTER_ID \
  -c /opt/kafka/config/kraft/server.properties

4️⃣ 启动 Kafka

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

5️⃣ 验证集群

/opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server 192.168.1.11:9092

三、创建 Topic 测试

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

查看:

kafka-topics.sh --describe --topic test --bootstrap-server 192.168.1.11:9092

四、ZooKeeper 模式(旧方式,不推荐)

如果你用的是 Kafka 2.x / 早期 3.x:

  • 需要单独部署 ZooKeeper
  • server.properties 中:
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181

五、常见注意点

✅ 防火墙放行:

sudo ufw allow 9092,9093,2181/tcp

✅ advertised.listeners 必须是其他机器能访问的 IP

✅ node.id 在集群中必须唯一


如果你愿意,我可以:

  • 帮你写 systemd 服务文件
  • 给你 Docker / docker-compose Kafka 集群
  • 或按你现有 Ubuntu 版本 & Kafka 版本定制配置

你现在是 物理机 / 虚拟机 / 云服务器?

0 踩