温馨提示×

debian上kafka怎么配置

小樊
49
2026-08-31 23:19:06
栏目: 智能运维

下面按**在 Debian 上安装并配置 Kafka(以 Kafka 3.x + 自带 ZooKeeper 为例)**来说明,适合新手和常见生产前的测试环境。


一、环境准备(Debian)

sudo apt update
sudo apt install -y openjdk-17-jdk wget
java -version

Kafka 3.x 推荐 Java 11 / 17


二、下载并安装 Kafka

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 配置
 │   └── zookeeper.properties  # ZooKeeper 配置
 ├── bin
 └── logs

四、配置 ZooKeeper(默认即可)

编辑:

sudo nano /opt/kafka/config/zookeeper.properties

常用配置:

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

创建数据目录:

sudo mkdir -p /opt/kafka/zookeeper-data

五、配置 Kafka(重点)

编辑:

sudo nano /opt/kafka/config/server.properties

1️⃣ 基础必改项

broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://你的服务器IP:9092
log.dirs=/opt/kafka/kafka-logs
zookeeper.connect=localhost:2181

⚠️ 如果是云服务器,advertised.listeners 必须写外网/内网 IP


2️⃣ 常用调优参数

num.partitions=3
default.replication.factor=1
offsets.topic.replication.factor=1
min.insync.replicas=1

3️⃣ 创建日志目录

sudo mkdir -p /opt/kafka/kafka-logs

六、启动 Kafka(测试用)

启动 ZooKeeper

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

启动 Kafka

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

查看日志:

tail -f /opt/kafka/logs/server.log

七、基本测试

创建 Topic

/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

消费消息

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

八、配置为 systemd 服务(推荐)

ZooKeeper

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

[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-failure

[Install]
WantedBy=multi-user.target

Kafka

sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=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-failure

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
sudo systemctl enable --now kafka

九、常见问题

❌ 外网连不上

  • 检查 advertised.listeners
  • 防火墙:
sudo ufw allow 9092

❌ Kafka 起不来

less /opt/kafka/logs/server.log

十、如果你用的是 Kafka 4.x(无 ZooKeeper)

可以告诉我,我给你 KRaft 模式配置(不需要 ZooKeeper)。


如果你需要:

  • 集群配置
  • SASL / SSL
  • Docker 部署
  • Debian + Kafka + Spring Boot

告诉我你的使用场景即可。

0