温馨提示×

Kafka如何配置在Debian

小樊
36
2026-07-11 15:38:42
栏目: 智能运维

下面以 Debian 系列(Debian 11/12、Ubuntu 等) 为例,说明 Apache Kafka 的基本安装与配置流程。示例基于 Kafka 3.x + Java 17,这是目前较推荐的组合。


一、前置条件

1. 安装 Java(必需)

Kafka 依赖 JVM。

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

验证:

java -version

二、下载并安装 Kafka

1. 创建安装目录

sudo mkdir -p /opt/kafka

2. 下载 Kafka

到官网获取最新版本(示例为 3.7.0):

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

3. 解压并移动到 /opt

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

三、基本配置

1. Kafka 目录结构

/opt/kafka
├── config
│   ├── server.properties
│   ├── zookeeper.properties
│   └── producer.properties
├── bin
└── libs

2. 配置 Zookeeper(Kafka 内置)

编辑:

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

常用配置:

dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=0
admin.enableServer=false

创建数据目录:

sudo mkdir -p /var/lib/zookeeper

3. 配置 Kafka Broker

编辑:

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

关键配置(单机示例):

broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=localhost:2181
num.partitions=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=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 Broker

新终端执行:

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

五、验证 Kafka 是否正常运行

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

消费(新终端):

/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=Apache 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=Apache 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 zookeeper
sudo systemctl enable kafka
sudo systemctl start zookeeper
sudo systemctl start kafka

查看状态:

systemctl status kafka

七、常用配置优化(生产环境)

1. 监听外部访问

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092

2. JVM 参数

编辑:

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

或设置环境变量:

export KAFKA_HEAP_OPTS="-Xms2G -Xmx2G"

八、常见问题

1. Kafka 3.x 是否还需要 Zookeeper?

  • ✅ 仍然支持 Zookeeper
  • ✅ 已支持 KRaft 模式(无 Zookeeper)
  • 新集群建议使用 KRaft

九、下一步建议

  • 使用 KRaft 模式
  • 配置 多 broker 集群
  • 开启 SSL / SASL 安全认证
  • 使用 Prometheus + JMX 监控

如果你需要:

  • KRaft 模式配置
  • 多节点集群
  • 生产环境安全配置
  • 与 Spring Boot / Python 集成

可以直接告诉我你的使用场景。

0