温馨提示×

Debian中Kafka如何配

小樊
44
2026-10-03 21:56:07
栏目: 智能运维

下面按**在 Debian 上部署 Apache Kafka(单机示例)**来说明,涵盖安装、配置和启动,适合初学和测试环境。生产环境还需考虑 ZooKeeper/KRaft、权限、监控等。


一、环境准备

1. 安装 Java(Kafka 需要 JDK)

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

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

验证:

java -version

二、下载并安装 Kafka

以 Kafka 3.6.1 为例(可换版本):

cd /opt
sudo wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
sudo tar -xzf kafka_2.13-3.6.1.tgz
sudo mv kafka_2.13-3.6.1 kafka

三、基本配置(重点)

1. Kafka 配置文件位置

/opt/kafka/config/server.properties

2. 常用核心配置(单机)

# broker 唯一 ID
broker.id=0

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

# 日志存储目录
log.dirs=/tmp/kafka-logs

# ZooKeeper(Kafka 3.3 之前必须)
zookeeper.connect=localhost:2181

# 单节点默认分区数
num.partitions=1

# 自动创建 topic
auto.create.topics.enable=true

✅ 如果是 Kafka 3.3+ 使用 KRaft(无 ZooKeeper),配置方式不同(下面补充)


四、启动 Kafka(使用 ZooKeeper)

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

查看进程:

jps

五、测试 Kafka

1. 创建 Topic

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

2. 发送消息

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

3. 消费消息

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

六、Kafka 3.3+(KRaft 模式,无 ZooKeeper)

1. 生成集群 ID

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

2. 格式化存储

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

3. 启动

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

七、开机自启(systemd 示例)

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

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

八、常见问题

  • 端口占用 9092 → 检查 listeners
  • 连接失败 → advertised.listeners 必须能被客户端访问
  • 数据丢失 → replication-factor=1 不适合生产

如果你需要:

  • ✅ 集群配置
  • ✅ SSL / SASL 安全
  • ✅ Docker 部署
  • ✅ Debian + Kafka + Spring Boot

告诉我你的使用场景即可。

0 踩