温馨提示×

debian跑kafka如何配置

小樊
39
2026-09-06 23:45:18
栏目: 智能运维

下面给你一份**在 Debian 上部署并配置 Kafka(以官方二进制包为例)**的实用指南,适合新手到生产环境参考。


一、环境准备

1. 系统要求

  • Debian 10 / 11 / 12
  • Java 8 或以上(推荐 Java 11/17)

2. 安装 Java

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

java -version

二、安装 Kafka

1. 下载 Kafka(以 3.6 为例)

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

三、Kafka 基础配置

1. Zookeeper 配置(Kafka < 3.0 或仍使用 ZK)

vi /opt/kafka/config/zookeeper.properties

关键参数:

dataDir=/var/lib/zookeeper
clientPort=2181

创建目录:

sudo mkdir -p /var/lib/zookeeper

2. Kafka Server 配置

vi /opt/kafka/config/server.properties

最基础配置(单机)

broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=localhost:2181

创建日志目录:

sudo mkdir -p /var/lib/kafka-logs

⚠️ advertised.listeners 必须配置为外部可访问 IP,否则客户端连不上


四、启动 Kafka

1. 启动 Zookeeper

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

2. 启动 Kafka

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

3. 检查

netstat -tunlp | grep 9092

五、Kafka 常用测试

# 创建 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 --from-beginning --bootstrap-server localhost:9092

六、使用 systemd(推荐)

1. Kafka Service

sudo vi /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=network.target 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-failure

[Install]
WantedBy=multi-user.target

2. Zookeeper Service

sudo vi /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-failure

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

七、KRaft 模式(无 Zookeeper,Kafka 3.0+)

如果你用的是 Kafka 3.x+,推荐 KRaft:

/opt/kafka/bin/kafka-storage.sh random-uuid
/opt/kafka/bin/kafka-storage.sh format \
-t <UUID> -c /opt/kafka/config/kraft/server.properties

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

八、常见坑

❌ 客户端连不上
advertised.listeners 配错

❌ topic 创建失败
log.dirs 权限不足

❌ 启动慢
✅ 检查 Java 版本 & 主机名解析


如果你需要:

  • 生产集群配置
  • SASL / SSL 安全配置
  • Docker / Kubernetes 部署
  • Debian + Kafka + Logstash / Flink

可以直接告诉我你的使用场景。

0