温馨提示×

Ubuntu下怎么部署Kafka

小樊
46
2026-08-02 15:21:14
栏目: 智能运维

在 Ubuntu 下部署 Kafka,通常推荐使用 Kafka 官方二进制包 + systemd 管理,下面给你一套从零到可用的完整流程(适用于 Ubuntu 20.04 / 22.04)。


一、环境准备

1. 安装 Java(Kafka 依赖 JVM)

Kafka 需要 Java 8 或以上(推荐 Java 11 或 17)。

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

验证:

java -version

二、下载并安装 Kafka

1. 创建安装目录

sudo mkdir -p /opt/kafka
cd /opt/kafka

2. 下载 Kafka(以 3.7.0 为例)

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz

版本说明:

  • 2.13 是 Scala 版本
  • 3.7.0 是 Kafka 版本
    可到官网查看最新版:https://kafka.apache.org/downloads

3. 解压

tar -xzf kafka_2.13-3.7.0.tgz
mv kafka_2.13-3.7.0/* .
rm -rf kafka_2.13-3.7.0 kafka_2.13-3.7.0.tgz

三、启动 Zookeeper(Kafka 内置)

⚠️ Kafka 新版本已支持 KRaft 模式(无需 Zookeeper),但生产环境仍较常用 Zookeeper。

1. 启动 Zookeeper

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

✅ 看到 binding to port 2181 表示成功


四、启动 Kafka

1. 修改 Kafka 配置(可选但推荐)

nano /opt/kafka/config/server.properties

常见修改项:

broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/tmp/kafka-logs

如果你要远程访问 Kafka,改为:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://你的服务器IP:9092

2. 启动 Kafka

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

✅ 看到 started (kafka.server.KafkaServer) 表示成功


五、测试 Kafka 是否正常工作

1. 创建 Topic

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

2. 查看 Topic

/opt/kafka/bin/kafka-topics.sh \
  --list \
  --bootstrap-server localhost:9092

3. 发送消息(生产者)

/opt/kafka/bin/kafka-console-producer.sh \
  --topic test-topic \
  --bootstrap-server localhost:9092

输入:

hello kafka

4. 消费消息(消费者)

/opt/kafka/bin/kafka-console-consumer.sh \
  --topic test-topic \
  --from-beginning \
  --bootstrap-server localhost:9092

✅ 能看到 hello kafka 说明 Kafka 完全正常


六、使用 systemd 管理 Kafka(推荐)

1. 创建 Zookeeper service

sudo nano /etc/systemd/system/zookeeper.service
[Unit]
Description=Apache Zookeeper
After=network.target

[Service]
Type=simple
User=root
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

2. 创建 Kafka service

sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=zookeeper.service

[Service]
Type=simple
User=root
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

3. 启动并设置开机自启

sudo systemctl daemon-reload
sudo systemctl start zookeeper
sudo systemctl start kafka

sudo systemctl enable zookeeper
sudo systemctl enable kafka

查看状态:

systemctl status kafka

七、KRaft 模式(无 Zookeeper,可选)

如果你想 跳过 Zookeeper(Kafka 3.x 新特性),我也可以给你:

✅ 单节点 KRaft 部署
✅ 多节点 Kafka 集群
✅ Docker / Docker Compose 部署
✅ 生产环境参数优化

你可以告诉我:

是学习用、测试环境,还是生产服务器?

0