温馨提示×

debian下kafka怎样设置

小樊
40
2026-09-16 00:58:46
栏目: 智能运维

下面按在 Debian(如 Debian 11/12)下安装并配置 Apache Kafka的思路,给你一个清晰、可操作的说明。内容涵盖:安装、基础配置、启动、常见设置


一、环境准备

1. 安装 Java(Kafka 依赖 JVM)

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

sudo apt update
sudo apt install -y default-jdk

验证:

java -version

二、下载并安装 Kafka

1. 创建安装目录

sudo mkdir -p /opt/kafka
cd /tmp

2. 下载 Kafka(以 3.7.0 为例)

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz

3. 解压

tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0/* /opt/kafka/

三、基础配置(重点)

1. Zookeeper 配置(Kafka 3.0+ 仍可用)

配置文件:

/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
broker.id=0

# 监听地址(本机)
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092

# 日志(消息)存储目录
log.dirs=/var/lib/kafka-logs

# Zookeeper 地址
zookeeper.connect=localhost:2181

# 单节点可关闭副本检查
offsets.topic.replication.factor=1
default.replication.factor=1
min.insync.replicas=1

创建日志目录:

sudo mkdir -p /var/lib/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

五、基本使用测试

1. 创建 Topic

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

2. 查看 Topic

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

3. 生产消息

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

4. 消费消息

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

六、设为 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

3. 启动

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

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

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

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

配置 server.properties

process.roles=broker,controller
listeners=PLAINTEXT://:9092,CONTROLLER://:9093

启动:

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

八、常见设置总结

需求 配置项
远程访问 advertised.listeners
数据目录 log.dirs
分区数 num.partitions
自动创建 topic auto.create.topics.enable
消息保留时间 log.retention.hours

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

  • 单机测试 还是 生产集群
  • Kafka 版本
  • 是否用 Docker / KRaft / Zookeeper

我可以直接给你一份定制配置文件

0