温馨提示×

kafka的debian配置怎样做

小樊
48
2026-09-25 04:27:43
栏目: 智能运维

下面给你一个在 Debian(如 Debian 11/12)上配置 Apache Kafka 的实用指南,涵盖安装、基础配置和启动方式,适合学习和测试环境(生产环境会再补充注意点)。


一、环境准备

1. 安装 Java(Kafka 依赖 JVM)

Kafka 3.x 推荐使用 Java 8 / 11 / 17

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

验证:

java -version

二、下载并安装 Kafka

1. 创建目录并下载

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

三、配置 Kafka(核心)

Kafka 依赖 ZooKeeper(老版本)或 KRaft(新版本)
下面分别说明。


方案 A:使用 ZooKeeper(传统方式,最常用)

1. 配置 ZooKeeper

编辑:

sudo nano /opt/kafka/config/zookeeper.properties

常见配置:

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

创建数据目录:

sudo mkdir -p /opt/kafka/zookeeper-data

2. 配置 Kafka

编辑:

sudo nano /opt/kafka/config/server.properties

关键配置:

broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092
log.dirs=/opt/kafka/kafka-logs
zookeeper.connect=localhost:2181
num.partitions=1

创建日志目录:

sudo mkdir -p /opt/kafka/kafka-logs

方案 B:使用 KRaft(无 ZooKeeper,新方式)

1. 生成集群 ID

KAFKA_CLUSTER_ID=$(/opt/kafka/bin/kafka-storage.sh random-uuid)

2. 修改配置

sudo nano /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://localhost:9092
log.dirs=/opt/kafka/kafka-logs

3. 格式化存储

/opt/kafka/bin/kafka-storage.sh format \
  -t $KAFKA_CLUSTER_ID \
  -c /opt/kafka/config/kraft/server.properties

四、启动 Kafka

ZooKeeper 模式

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

KRaft 模式

/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

查看 Topic

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

六、(推荐)配置 systemd 服务

Kafka systemd 示例

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

[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 kafka

七、常见注意点(生产环境)

  • ✅ 修改 advertised.listeners 为公网/内网 IP
  • ✅ 配置 log.retention.hours
  • ✅ 多 broker 时设置不同 broker.id
  • ✅ 使用防火墙限制 9092 / 2181 端口
  • ✅ 生产建议 JVM 堆内存 -Xmx4G

如果你愿意,我可以:

  • 给你 Debian + Docker Kafka 配置
  • 给你 多 broker 集群配置
  • 或按你的 **使用场景(日志 / 消息队列 / 流处理)**来定制配置

0 踩