温馨提示×

ubuntu kafka配置怎么集群

小樊
53
2026-09-08 14:19:32
栏目: 智能运维

下面给你一个**在 Ubuntu 上搭建 Kafka 集群(以 3 台为例)**的实用配置步骤,基于 Kafka 3.x + Zookeeper(常见稳定方案)。如果你用的是 Kafka 3.3+ 的 KRaft 模式,我也会在最后说明区别。


一、环境准备(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-11-jdk
java -version

下载 Kafka:

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

二、Zookeeper 集群配置(三台都要)

编辑:

/opt/kafka/config/zookeeper.properties

统一配置:

dataDir=/opt/kafka/zookeeper-data
clientPort=2181
maxClientCnxns=0

server.1=192.168.1.11:2888:3888
server.2=192.168.1.12:2888:3888
server.3=192.168.1.13:2888:3888

在每台机器上创建 myid:

# kafka1
echo 1 > /opt/kafka/zookeeper-data/myid

# kafka2
echo 2 > /opt/kafka/zookeeper-data/myid

# kafka3
echo 3 > /opt/kafka/zookeeper-data/myid

三、Kafka 集群配置(核心)

编辑:

/opt/kafka/config/server.properties

kafka1

broker.id=1
listeners=PLAINTEXT://192.168.1.11:9092
advertised.listeners=PLAINTEXT://192.168.1.11:9092
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181
log.dirs=/opt/kafka/kafka-logs
num.partitions=3
default.replication.factor=3
min.insync.replicas=2

kafka2

broker.id=2
listeners=PLAINTEXT://192.168.1.12:9092
advertised.listeners=PLAINTEXT://192.168.1.12:9092
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181

kafka3

broker.id=3
listeners=PLAINTEXT://192.168.1.13:9092
advertised.listeners=PLAINTEXT://192.168.1.13:9092
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181

⚠️ broker.id 和 IP 必须每台不同


四、启动集群

1. 启动 Zookeeper(三台)

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

2. 启动 Kafka(三台)

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

五、验证集群

随便一台执行:

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

查看 broker:

/opt/kafka/bin/zookeeper-shell.sh 192.168.1.11:2181 ls /brokers/ids

创建 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

六、KRaft 模式(无 Zookeeper,Kafka 3.3+)

如果你不想用 Zookeeper:

  • 用 config/kraft/server.properties
  • 使用:
kafka-storage.sh random-uuid
kafka-storage.sh format
  • controller.quorum.voters 配置 3 台

如果你需要 KRaft 完整配置,我可以单独给你一份。


七、常见坑

✅ 防火墙开放:

9092, 2181, 2888, 3888

✅ advertised.listeners 必须写 IP,不能写 localhost
✅ broker.id 唯一
✅ replication.factor ≤ broker 数量


如果你愿意,我可以:

  • 给你 systemd 服务文件
  • 给你 Docker / docker-compose 版
  • 给你 生产环境参数优化

你现在是学习还是生产环境?

0 踩