温馨提示×

debian装kafka要注意什么

小樊
41
2026-09-03 18:35:15
栏目: 智能运维

在 Debian 上安装和部署 Kafka(通常指 Apache Kafka,或常见的 Confluent / Bitnami 版本),有几个容易踩坑但很关键的点。下面按「系统准备 → 安装 → 配置 → 运行 → 常见坑」给你梳理。


一、系统与环境准备

1. 使用合适的 Java 版本

Kafka 依赖 JVM:

  • Kafka 3.x:JDK 11 或 JDK 17(推荐 17)
  • 不推荐 JDK 8(新版本已不支持)
sudo apt update
sudo apt install -y openjdk-17-jdk
java -version

⚠️ 确认 JAVA_HOME

echo $JAVA_HOME
# 若无输出
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

2. 创建专用用户(很重要)

不要直接用 root 跑 Kafka

sudo useradd -m -s /bin/bash kafka
sudo passwd kafka

二、安装方式选择

方式一:官方二进制包(最推荐)

wget https://downloads.apache.org/kafka/3.7.0/k...tgz
tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 /opt/kafka
sudo chown -R kafka:kafka /opt/kafka

✅ 优点:干净、可控、适合生产


方式二:apt(不推荐)

Debian 官方源 没有 Kafka 第三方源风险高,不建议生产使用


三、关键配置(最容易出问题)

1. server.properties 重点项

# 必须改
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092

# 日志目录(必须存在且可写)
log.dirs=/data/kafka-logs

# Zookeeper(Kafka < 3.3)
zookeeper.connect=localhost:2181

⚠️ advertised.listeners 错了,客户端连不上


2. 数据目录权限

sudo mkdir -p /data/kafka-logs
sudo chown -R kafka:kafka /data/kafka-logs

四、Zookeeper 还是 KRaft?

Kafka 3.3+ 支持 KRaft(无 Zookeeper)

✅ 新项目推荐 KRaft
❌ 老教程大多是 Zookeeper

KRaft 模式需生成集群 ID:

KAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid)
bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties

五、作为系统服务运行(生产必做)

systemd 示例(Kafka)

[Unit]
Description=Apache Kafka
After=network.target

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

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

六、Debian 特有注意事项

1. 防火墙

sudo ufw allow 9092

2. 文件描述符限制

Kafka 很吃 fd:

sudo vim /etc/security/limits.conf
kafka soft nofile 100000
kafka hard nofile 100000

3. swappiness

sudo sysctl vm.swappiness=1

七、常见坑总结

❌ 用 root 启动
❌ advertised.listeners 写 localhost
❌ 日志目录权限不对
❌ 忘记开端口
❌ Java 版本不匹配
❌ Zookeeper 没起来就启动 Kafka


八、快速验证

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

如果你愿意,我可以:

  • 给你 Debian + KRaft 完整部署脚本
  • 单机 / 集群 / Docker 方案对比
  • 或针对 生产环境参数调优

你现在是 学习 / 测试 / 生产 用?

0