在 Ubuntu 上配置 Kafka,通常包括:安装、基础配置、启动以及常见参数说明。下面给你一个从零到可用的实操指南(以 Kafka 3.x + Ubuntu 22.04 为例,使用 Kafka 自带 Zookeeper)。
Kafka 依赖 JVM:
sudo apt update
sudo apt install openjdk-17-jdk -y
java -version
cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
sudo tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 kafka
/opt/kafka/config/
主要配置文件:
| 文件 | 作用 |
|---|---|
server.properties |
Kafka Broker 配置 |
zookeeper.properties |
Zookeeper 配置 |
producer.properties |
生产者示例配置 |
consumer.properties |
消费者示例配置 |
server.properties编辑:
sudo nano /opt/kafka/config/server.properties
最关键配置:
# Broker ID(集群中唯一)
broker.id=0
# 监听地址
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092
# 日志存储目录
log.dirs=/tmp/kafka-logs
# Zookeeper 地址
zookeeper.connect=localhost:2181
# 分区与副本(单机只能为1)
num.partitions=1
default.replication.factor=1
offsets.topic.replication.factor=1
sudo nano /opt/kafka/config/zookeeper.properties
默认一般够用:
dataDir=/tmp/zookeeper
clientPort=2181
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
查看进程:
jps
应看到:
QuorumPeerMainKafka/opt/kafka/bin/kafka-topics.sh \
--create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
/opt/kafka/bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092
输入:
hello kafka
/opt/kafka/bin/kafka-console-consumer.sh \
--topic test \
--from-beginning \
--bootstrap-server localhost:9092
sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=zookeeper.service
[Service]
Type=simple
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
sudo nano /etc/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
[Service]
Type=simple
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
启用:
sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl enable kafka
| 问题 | 原因 |
|---|---|
| 无法连接 localhost:9092 | advertised.listeners 配置错误 |
| Topic 创建失败 | Zookeeper 未启动 |
| 磁盘爆满 | log.dirs 在 /tmp |
| 端口被占用 | 已有 Kafka 或 Zookeeper 运行 |
我也可以给你 Ubuntu + Kafka KRaft 模式配置(生产推荐)。
如果你愿意,可以告诉我:
我可以给你精准配置模板。