温馨提示×

Debian Kafka配置依赖哪些

小樊
67
2026-08-22 06:48:29
栏目: 智能运维

在 Debian 上部署 Apache Kafka,其配置和运行主要依赖以下几类内容(系统、运行环境、Kafka 自身配置、可选组件):


一、系统级依赖

1. 操作系统

  • Debian 10 / 11 / 12(推荐 64 位)
  • 内核版本无特殊要求,但建议使用较新的稳定版

2. 基础工具

sudo apt update
sudo apt install -y wget curl tar gzip

二、运行环境依赖(最重要)

✅ Java(必须)

Kafka 是用 Scala/Java 编写的,必须安装 JVM。

推荐版本

  • JDK 11 或 JDK 17(Kafka 3.x 推荐)
  • OpenJDK 即可
sudo apt install -y openjdk-17-jdk

验证:

java -version

⚠️ Kafka 3.x 已不再推荐 Java 8


三、Kafka 本身依赖

1. Kafka 安装包

  • 官方下载(推荐)
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz

格式说明:
kafka_2.13-3.6.1.tgz

  • 2.13:Scala 版本
  • 3.6.1:Kafka 版本

2. 内置依赖(无需单独安装)

Kafka 自带:

  • ZooKeeper(旧版本)
  • 或 KRaft 模式(Kafka 3.x 推荐,无需 ZooKeeper)

四、Kafka 核心配置文件(重点)

1. Broker 配置

路径:

config/server.properties

常见关键配置:

broker.id=1
listeners=PLAINTEXT://:9092
log.dirs=/var/lib/kafka-logs
num.partitions=3
offsets.topic.replication.factor=1

2. KRaft 模式(无 ZooKeeper,推荐)

如果是 Kafka 3.x:

生成 Cluster ID

KAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid)

格式化存储

bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties

配置文件

config/kraft/server.properties

关键配置:

process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
log.dirs=/var/lib/kafka-logs

五、ZooKeeper 依赖(仅旧版本)

如果你使用 ZooKeeper(Kafka < 3.x 或老架构)

config/zookeeper.properties

启动:

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

✅ 新项目不建议再使用 ZooKeeper


六、网络与系统配置依赖

1. 防火墙 / 端口

常见端口:

  • 9092:Kafka 客户端
  • 9093:KRaft Controller
  • 2181:ZooKeeper(如启用)
sudo ufw allow 9092

2. ulimit(生产环境建议)

ulimit -n 100000

或写入:

/etc/security/limits.conf

七、可选但常见依赖

组件 说明
systemd 配置 Kafka 开机自启
Prometheus Kafka 监控
JMX Kafka 性能监控
Schema Registry Confluent 生态
Kafka Connect 数据集成

八、最小依赖总结(一句话)

Debian 上运行 Kafka 只需:Java + Kafka 安装包 + 正确配置文件


如果你愿意,我可以帮你:

  • ✅ 写 Debian 下 Kafka 完整安装脚本
  • ✅ 提供 KRaft 单节点 / 集群配置
  • ✅ 对比 ZooKeeper vs KRaft
  • ✅ 解决你当前的具体报错

直接告诉我你的 Kafka 版本 + 使用场景 即可。

0 踩