温馨提示×

Kafka在Debian怎配置

小樊
34
2026-10-03 21:47:09
栏目: 智能运维

下面按从零开始的思路,给你一份在 Debian 上配置 Apache Kafka 的实用指南(以 Kafka 3.x + Debian 11/12 为例,Kafka 自带 Zookeeper,也适合 KRaft 模式)。


一、准备工作

1. 安装 Java(Kafka 依赖 JVM)

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

验证:

java -version

2. 创建专用用户(可选但推荐)

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

二、下载并安装 Kafka

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

三、配置 Kafka(Zookeeper 模式,最简单)

1. 配置 Zookeeper

编辑:

/opt/kafka/config/zookeeper.properties

常见配置:

dataDir=/opt/kafka/zookeeper-data
clientPort=2181
maxClientCnxns=0

创建目录:

mkdir -p /opt/kafka/zookeeper-data

2. 配置 Kafka

编辑:

/opt/kafka/config/server.properties

关键配置:

broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your-server-ip:9092
log.dirs=/opt/kafka/kafka-logs
zookeeper.connect=localhost:2181

创建日志目录:

mkdir -p /opt/kafka/kafka-logs

四、启动 Kafka(测试用)

1. 启动 Zookeeper

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

2. 启动 Kafka

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

五、基础测试

创建 Topic

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

消费消息

bin/kafka-console-consumer.sh \
  --topic test \
  --from-beginning \
  --bootstrap-server localhost:9092

六、配置为 systemd 服务(生产推荐)

1. Zookeeper 服务

/etc/systemd/system/zookeeper.service

[Unit]
Description=Zookeeper
After=network.target

[Service]
User=kafka
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

2. Kafka 服务

/etc/systemd/system/kafka.service

[Unit]
Description=Kafka
After=zookeeper.service

[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=on-failure

[Install]
WantedBy=multi-user.target

启用:

sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
sudo systemctl enable --now kafka

七、KRaft 模式(无 Zookeeper,新方案)

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

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

server.properties 示例:

process.roles=broker,controller
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
controller.quorum.voters=0@localhost:9093

启动:

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

八、常见坑

  • ❌ 防火墙未开放 9092
    sudo ufw allow 9092
    
  • ❌ advertised.listeners 写错(集群必错)
  • ❌ 用 root 跑 Kafka(不推荐)

如果你愿意,我可以:

  • 帮你写 集群版 Kafka 配置
  • 帮你做 Debian + Docker Compose
  • 或按你的 使用场景(日志 / 消息队列 / 流处理) 优化参数

你现在是 单机测试 还是 生产集群?

0 踩