温馨提示×

kafka在debian怎配置好

小樊
34
2026-09-25 04:23:43
栏目: 智能运维

下面给你一份**在 Debian 上配置 Kafka(单节点可用,生产可扩展)**的实用步骤。以 Kafka 3.x + Kafka 自带的 Zookeeper 为例(目前最常用、最稳妥)。


一、环境准备

1. 安装 Java(必须)

Kafka 需要 JDK 8 或以上(推荐 JDK 17)

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

验证:

java -version

二、下载并安装 Kafka

2. 创建用户(推荐)

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

以下操作建议都在 kafka 用户下进行

3. 下载 Kafka

cd ~
wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzf kafka_2.13-3.7.0.tgz
mv kafka_2.13-3.7.0 kafka
cd kafka

三、配置 Zookeeper(Kafka 依赖)

Kafka 3.x 仍可用自带的 Zookeeper(简化配置)

4. 修改 Zookeeper 配置

vim config/zookeeper.properties

常用配置:

dataDir=/home/kafka/zookeeper
clientPort=2181
maxClientCnxns=0

创建目录:

mkdir -p /home/kafka/zookeeper

四、配置 Kafka

5. 修改 server.properties

vim config/server.properties

最关键的几项(单机示例):

broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://你的服务器IP:9092

log.dirs=/home/kafka/kafka-logs
num.partitions=3
default.replication.factor=1

zookeeper.connect=localhost:2181

创建日志目录:

mkdir -p /home/kafka/kafka-logs

⚠️ advertised.listeners 很重要
本机测试可写 localhost
远程访问必须写服务器 IP 或域名


五、启动 Kafka

6. 启动 Zookeeper

nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &

7. 启动 Kafka

nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &

查看是否启动成功:

tail -f kafka.log

六、基本测试

8. 创建 Topic

bin/kafka-topics.sh --create \
  --topic test \
  --bootstrap-server localhost:9092 \
  --partitions 1 \
  --replication-factor 1

9. 发送消息

bin/kafka-console-producer.sh \
  --topic test \
  --bootstrap-server localhost:9092

10. 消费消息(另开终端)

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

七、开机自启(systemd,推荐)

11. 创建 systemd 服务

Zookeeper

sudo vim /etc/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
After=network.target

[Service]
User=kafka
ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh

[Install]
WantedBy=multi-user.target

Kafka

sudo vim /etc/systemd/system/kafka.service
[Unit]
Description=Kafka
After=zookeeper.service

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

[Install]
WantedBy=multi-user.target

启用:

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

八、生产环境建议

✅ 使用 Kafka Raft(KRaft) 替代 Zookeeper(Kafka 3.3+ 已稳定)
✅ 多 broker 集群(broker.id 唯一)
✅ 配置:

  • log.retention.hours
  • message.max.bytes
  • num.network.threads
  • 防火墙只开放 9092

如果你愿意,我可以:

  • 帮你 用 KRaft 模式(无 Zookeeper)
  • 帮你 配置集群(3 台 Debian)
  • 或针对 Docker / 云服务器 给你方案

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

0 踩