下面是在 Ubuntu 上安装并配置 Kafka(以 Kafka 3.x + 为例,假设使用 Kafka 自带的 Zookeeper) 的常见完整流程。如果你已经有 Kafka 并只想看核心配置点,也可以直接跳到「四、常用配置说明」。
Kafka 依赖 Java:
sudo apt update
sudo apt install openjdk-11-jdk -y
验证:
java -version
去官网复制最新链接(示例为 3.6.1):
cd /opt
sudo wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
sudo tar -xzf kafka_2.13-3.6.1.tgz
sudo mv kafka_2.13-3.6.1 kafka
cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
后台运行:
nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &
编辑配置文件:
vim config/server.properties
关键配置项:
# broker 唯一 ID
broker.id=0
# 监听地址(重要)
listeners=PLAINTEXT://localhost:9092
# 或允许远程访问
# listeners=PLAINTEXT://0.0.0.0:9092
# 对外暴露地址
advertised.listeners=PLAINTEXT://localhost:9092
# 日志存储目录
log.dirs=/tmp/kafka-logs
# Zookeeper 地址
zookeeper.connect=localhost:2181
# 是否允许删除 topic
delete.topic.enable=true
bin/kafka-server-start.sh config/server.properties
后台运行:
nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &
bin/kafka-storage.sh random-uuid
假设得到:
xtz1234567890
bin/kafka-storage.sh format -t xtz1234567890 -c config/kraft/server.properties
vim config/kraft/server.properties
关键配置:
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093
advertised.listeners=PLAINTEXT://localhost:9092
log.dirs=/tmp/kafka-logs
bin/kafka-server-start.sh config/kraft/server.properties
| 配置项 | 作用 |
|---|---|
| listeners | Kafka 实际监听的地址 |
| advertised.listeners | 客户端连接时使用的地址 |
远程访问示例:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://服务器公网IP:9092
log.retention.hours=168
log.retention.bytes=-1
log.segment.bytes=1073741824
num.partitions=3
bin/kafka-topics.sh --create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092
bin/kafka-console-consumer.sh \
--topic test \
--from-beginning \
--bootstrap-server localhost:9092
如果你需要,我可以帮你写:
kafka.servicezookeeper.serviceadvertised.listenerssudo ufw allow 9092
✅ Ubuntu 上 Kafka 的核心步骤:
server.properties如果你告诉我:
我可以给你一份完全贴合你场景的 Kafka 配置模板 ✅