温馨提示×

debian里kafka配置如何弄

小樊
52
2026-09-25 04:28:48
栏目: 智能运维

下面按“在 Debian 上从零配置 Kafka”的思路给你一个清晰、可落地的说明,包含 单节点最简配置 和 常见生产向配置要点。


一、前置条件(Debian)

1. 安装 JDK

Kafka 依赖 Java(推荐 JDK 8 / 11 / 17,取决于 Kafka 版本)

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

2. 创建专用用户(推荐)

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

二、下载并安装 Kafka

以 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
sudo chown -R kafka:kafka /opt/kafka

三、核心配置文件位置

/opt/kafka/config/
├── server.properties      # Kafka 核心配置
├── zookeeper.properties  # Zookeeper(老版本需要)
└── producer.properties / consumer.properties

⚠️ Kafka 3.x 开始支持 KRaft 模式(无 Zookeeper),下面两种都讲。


四、方式一:Zookeeper 模式(传统、稳定)

1. 配置 Zookeeper

vi /opt/kafka/config/zookeeper.properties

常用配置:

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

启动:

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

2. 配置 Kafka(server.properties)

vi /opt/kafka/config/server.properties

最小可用配置:

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

创建目录:

mkdir -p /opt/kafka/data/kafka-logs

启动 Kafka:

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

五、方式二:KRaft 模式(无 Zookeeper,推荐新项目)

1. 生成集群 ID

/opt/kafka/bin/kafka-storage.sh random-uuid

例如:

abc12345-6789-0abc-def0-1234567890ab

2. 修改配置

vi /opt/kafka/config/kraft/server.properties

示例:

process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://<IP>:9092
log.dirs=/opt/kafka/data/kraft-logs

3. 格式化存储

/opt/kafka/bin/kafka-storage.sh format \
  -t abc12345-6789-0abc-def0-1234567890ab \
  -c /opt/kafka/config/kraft/server.properties

4. 启动

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

六、验证 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

七、Debian 开机自启(systemd)

示例(KRaft):

sudo vi /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=network.target

[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/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 kafka

八、常见配置优化(生产建议)

num.partitions=3
default.replication.factor=3
min.insync.replicas=2
log.retention.hours=168
log.segment.bytes=1073741824

九、常见问题

  • 外网连不上:检查 advertised.listeners
  • 端口被占用:lsof -i:9092
  • 数据丢了:确认 acks=all

如果你愿意,可以告诉我:

  • Debian 版本
  • Kafka 版本
  • 单机 / 集群
  • 是否需要 SSL / SASL

我可以直接给你一份 可用配置文件模板。

0 踩