温馨提示×

Debian Kafka如何设置

小樊
44
2026-07-11 15:35:47
栏目: 智能运维

下面以 Debian 系统 为例,给你一个 从零到可用 的 Kafka 安装与基本配置流程(基于 Kafka 3.x + Java 17,当前最常用方案)。


一、前置条件

1. 安装 Java(推荐 OpenJDK 17)

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

验证:

java -version

二、下载并安装 Kafka

1. 创建用户(推荐)

sudo useradd -r -m -s /bin/bash kafka
sudo su - kafka

2. 下载 Kafka

cd ~
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
mv kafka_2.13-3.7.0 kafka
cd kafka

版本号可按需替换


三、配置 Kafka(单机示例)

1. 修改 server.properties

vim config/server.properties

常用关键配置(单机):

# broker 唯一 ID
broker.id=0

# 监听地址(重要)
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092

# 日志目录(确保存在)
log.dirs=/home/kafka/kafka-logs

# Zookeeper(Kafka 3.x 仍可用)
zookeeper.connect=localhost:2181

✅ Kafka 3.x 支持 KRaft(无 Zookeeper),但 新手建议先用 Zookeeper


四、配置 Zookeeper

Kafka 自带 Zookeeper:

vim config/zookeeper.properties

示例:

dataDir=/home/kafka/zookeeper
clientPort=2181

五、启动 Kafka

1. 启动 Zookeeper

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

2. 启动 Kafka

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

检查进程:

jps

应看到:

QuorumPeerMain
Kafka

六、测试 Kafka 是否正常工作

1. 创建 Topic

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

2. 生产消息

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

输入:

hello kafka

3. 消费消息

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

七、设置开机自启(systemd,推荐)

1. Zookeeper service

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

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

[Install]
WantedBy=multi-user.target

2. Kafka service

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

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

[Install]
WantedBy=multi-user.target

3. 启用并启动

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

八、常见问题

1. 端口无法访问

sudo ufw allow 9092

2. advertised.listeners 错误

  • 客户端连不上通常是 advertised.listeners 没配
  • 不用 localhost,用真实 IP 或域名

九、下一步建议

✅ 集群部署
✅ KRaft 模式(无 Zookeeper)
✅ Kafka + SASL / SSL
✅ Kafka + systemd + 日志管理

如果你告诉我:

  • Debian 版本
  • 是否生产环境
  • 单机 / 集群

我可以给你 更精确的生产级配置方案

0