温馨提示×

怎么学debian kafka

小樊
47
2026-09-25 04:56:41
栏目: 智能运维

学习 Debian 上部署和使用 Kafka,可以按下面这条路线来,从环境准备到实战一步步来,不绕弯。


一、先搞清楚:你要学的是哪一层?

在 Debian 上“学 Kafka”通常分三层:

  1. 系统层:在 Debian 上安装、配置、运行 Kafka
  2. 使用层:用 Kafka 生产与消费消息
  3. 开发层:用 Java / Python / Go 等写 Kafka 程序

如果你是初学者,重点先放在前两层。


二、环境准备(Debian)

1. 系统要求

  • Debian 11 / 12(推荐)
  • 已安装 sudo
  • 稳定网络

2. 安装 Java(Kafka 依赖)

Kafka 需要 JVM:

sudo apt update
sudo apt install -y default-jdk
java -version

三、安装 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

启动 Zookeeper(老版本)或 KRaft(新版本)

Kafka 3.x 推荐用 KRaft(无 Zookeeper)

cd /opt/kafka

生成集群 ID:

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

格式化存储:

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

启动:

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

四、最基础的 Kafka 操作(必练)

1. 创建 Topic

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

2. 生产消息

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

输入任意内容,回车发送。

3. 消费消息(另开终端)

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

✅ 能看到消息,说明 Kafka 跑通了。


五、Debian 上做成系统服务(进阶)

可以写 systemd 服务,避免手动启动。

示例(/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/kraft/server.properties
User=root
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka

六、学习路线建议(很重要)

第 1 周:会用

  • Topic / Producer / Consumer
  • 命令行工具
  • 理解 partition & offset

第 2 周:懂原理

  • 消息模型
  • 消费者组
  • 副本机制

第 3 周:能开发

  • Java / Python 客户端
  • 日志收集 / 消息队列场景

七、推荐学习资源

官方

  • https://kafka.apache.org/quickstart

中文

  • 尚硅谷 / 黑马 Kafka 教程(B 站)
  • 《Kafka 权威指南》

八、如果你愿意,我可以继续帮你

你可以直接告诉我:

  • 你是 新手 / 运维 / 开发
  • 想用 Java / Python
  • 是 学习 / 面试 / 生产部署

我可以给你更针对性的学习计划和命令示例。

0 踩