温馨提示×

Debian Kafka需配置哪些项

小樊
46
2026-08-22 06:27:32
栏目: 智能运维

在 Debian 上部署 Apache Kafka 时,需要配置的核心项主要分为 系统环境、Kafka 自身配置、ZooKeeper(或 KRaft)配置 三部分。下面按“必须 → 常见 → 可选”的顺序说明。


一、系统与环境配置(Debian 侧)

1. Java 环境(必须)

Kafka 依赖 JVM:

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

建议:

  • Kafka 3.x:Java 11 或 17
  • 设置 JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

2. 用户与目录(推荐)

sudo useradd -r -m -s /bin/bash kafka
sudo mkdir -p /opt/kafka
sudo chown -R kafka:kafka /opt/kafka

3. 文件与系统参数(生产建议)

最大文件数

ulimit -n

建议 ≥ 100000

禁用 swap(重要)

sudo swapoff -a

文件系统

  • 推荐:ext4 / xfs
  • 挂载参数:noatime

二、Kafka 核心配置(必须)

配置文件路径:

/opt/kafka/config/server.properties

1. broker 基础配置(必须)

配置项 说明 示例
broker.id 每个 broker 唯一 broker.id=1
log.dirs 数据目录 log.dirs=/data/kafka-logs
listeners 监听地址 listeners=PLAINTEXT://:9092
advertised.listeners 对外暴露地址 advertised.listeners=PLAINTEXT://debian:9092

⚠️ 生产环境必须配置 advertised.listeners


2. ZooKeeper 模式(传统方式)

zookeeper.connect=localhost:2181

若集群:

zookeeper.connect=zk1:2181,zk2:2181,zk3:2181

3. KRaft 模式(Kafka 3.x+,无需 ZooKeeper)

① 生成 Cluster ID

bin/kafka-storage.sh random-uuid

server.properties

process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
inter.broker.listener.name=PLAINTEXT

③ 格式化存储

bin/kafka-storage.sh format -t <uuid> -c config/server.properties

三、Kafka 常见生产配置(强烈建议)

1. 数据存储

log.dirs=/data/kafka-logs
log.retention.hours=168
log.segment.bytes=1073741824

2. 副本与容错

default.replication.factor=3
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
min.insync.replicas=2

3. 性能调优

num.network.threads=8
num.io.threads=16
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600

四、ZooKeeper 配置(如仍使用)

/opt/kafka/config/zookeeper.properties
dataDir=/data/zookeeper
clientPort=2181
tickTime=2000
initLimit=5
syncLimit=2

五、Systemd 服务(Debian 必备)

Kafka service

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

[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=always

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

六、安全配置(可选但常见)

1. 认证

  • SASL/PLAIN
  • SASL/SCRAM
  • mTLS

2. 权限

  • ACLs

3. 加密

  • SSL

七、最小可用配置总结(示例)

broker.id=1
log.dirs=/data/kafka-logs
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.1.10:9092
zookeeper.connect=localhost:2181

八、推荐实践

✅ 使用 KRaft(无 ZooKeeper)
✅ 数据盘单独挂载
✅ 禁用 swap
✅ 生产环境至少 3 个 broker
advertised.listeners ≠ localhost


如果你愿意,我可以:

  • ✅ 给你一份 Debian + KRaft 完整部署脚本
  • ✅ 按 生产 / 测试 / 单机 给出不同配置模板
  • ✅ 帮你排查 Kafka 启动失败或连接问题

只要告诉我你的 Kafka 版本 + 部署模式 即可。

0