温馨提示×

debian中kafka配置怎么做

小樊
39
2026-09-19 01:13:11
栏目: 智能运维

下面按从零到可用的思路,给你一份 Debian 下 Kafka 配置实用指南(以最常见场景:单台 Debian 服务器 + Kafka 3.x + 自带 Zookeeper 为例)。


一、环境准备

1. 安装 JDK(Kafka 依赖 Java)

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

Kafka 3.x 推荐 JDK 11 / 17


二、下载并安装 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

三、基础配置(核心)

1. Zookeeper 配置(默认即可)

/opt/kafka/config/zookeeper.properties

关键参数:

dataDir=/var/lib/zookeeper
clientPort=2181

创建数据目录:

sudo mkdir -p /var/lib/zookeeper

2. Kafka 服务配置

/opt/kafka/config/server.properties

最小可用配置:

broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=localhost:2181

创建日志目录:

sudo mkdir -p /var/lib/kafka-logs

四、启动 Kafka(测试用)

1. 启动 Zookeeper

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

2. 启动 Kafka

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

3. 验证

/opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

五、Systemd 方式(推荐生产)

1. Zookeeper

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

[Service]
Type=simple
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

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

[Service]
Type=simple
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

六、常用配置说明(重要)

1. 监听地址

  • listeners:Kafka 绑定的地址
  • advertised.listeners:客户端连接的地址(必须可访问)

2. 分区与副本

default.replication.factor=1
num.partitions=3

3. 数据保留

log.retention.hours=168
log.segment.bytes=1073741824

七、测试 Kafka

# 创建 topic
kafka-topics.sh --create --topic test \
--bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

# 生产者
kafka-console-producer.sh --topic test --bootstrap-server localhost:9092

# 消费者
kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092

八、常见问题

❌ 外网连不上

  • 检查 advertised.listeners
  • 防火墙:
sudo ufw allow 9092

❌ Kafka 起不来

journalctl -u kafka -n 50

如果你需要:

  • ✅ KRaft 模式(无 Zookeeper)
  • ✅ 集群配置
  • ✅ Debian + Docker
  • ✅ 安全认证(SASL/SSL)

告诉我你的使用场景,我可以给你更精准的配置。

0 踩