温馨提示×

ubuntu kafka配置如何学习

小樊
43
2026-08-29 03:27:25
栏目: 智能运维

要系统学习 Ubuntu 下 Kafka 的配置与使用,可以按下面这条主线来,从环境准备 → 安装 → 核心配置 → 实践 → 排错,循序渐进。


一、前置知识(建议先会)

虽然可以直接上手,但建议你至少了解:

  1. Linux 基础

    • 文件权限(chmod / chown)
    • 进程管理(ps / kill / systemctl)
    • 网络基础(端口、防火墙)
  2. Java 基础概念

    • Kafka 依赖 JVM
    • 了解 JAVA_HOME、heap 内存即可
  3. 消息队列基本概念

    • Producer / Consumer
    • Topic / Partition
    • Broker / Consumer Group

二、Ubuntu 上安装 Kafka

1️⃣ 安装 Java

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

Kafka 3.x 推荐 Java 11 或 17


2️⃣ 下载 Kafka

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

3️⃣ 启动 Kafka(单机模式)

启动 Zookeeper(Kafka 自带)

bin/zookeeper-server-start.sh config/zookeeper.properties

启动 Kafka Broker

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

三、Kafka 核心配置文件学习

1️⃣ server.properties(最重要)

路径:

config/server.properties

必学配置项

broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/tmp/kafka-logs
num.partitions=1
offsets.topic.replication.factor=1

✅ 建议理解:

  • broker.id:每个 broker 唯一
  • listeners:客户端如何连接
  • log.dirs:数据存储位置
  • num.partitions:默认分区数

2️⃣ zookeeper.properties

dataDir=/tmp/zookeeper
clientPort=2181

✅ 理解 Zookeeper 作用:

  • 管理 broker
  • 保存 topic / 分区元数据

3️⃣ producer.properties / consumer.properties

config/producer.properties
config/consumer.properties

常用:

bootstrap.servers=localhost:9092

四、基础实践(命令行)

1️⃣ 创建 Topic

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

2️⃣ 查看 Topic

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

3️⃣ 发送消息

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

4️⃣ 消费消息

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

五、进阶配置(面试 & 实战重点)

✅ 高可用

  • replication.factor
  • min.insync.replicas
  • ack=all

✅ 性能调优

  • num.network.threads
  • num.io.threads
  • socket.send.buffer.bytes
  • log.segment.bytes

✅ 数据清理

  • log.retention.hours
  • log.cleanup.policy=delete / compact

六、以服务方式运行(推荐)

使用 systemd(生产环境)

示例:

[Unit]
Description=Kafka Broker

[Service]
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
Restart=always

[Install]
WantedBy=multi-user.target

七、常见问题排查

1️⃣ 端口无法访问

sudo ufw allow 9092

2️⃣ 无法连接 broker

检查:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://你的IP:9092

3️⃣ 磁盘被写满

df -h
du -sh /tmp/kafka-logs

八、推荐学习路线(建议顺序)

入门

  1. 官方 Quick Start
    https://kafka.apache.org/quickstart

进阶 2. 《Kafka 权威指南》 3. Confluent 官方博客

实战

  • 用 Java / Python 写 Producer & Consumer
  • 搭 3 节点 Kafka 集群
  • 模拟 consumer rebalance

九、我可以继续帮你做的事

你可以直接告诉我你的目标,例如:

  • ✅ 我要 面试 Kafka
  • ✅ 我要 生产环境部署
  • ✅ 我要 学 Kafka + Ubuntu + Spring Boot
  • ✅ 我想 排查某个 Kafka 报错

我可以按你的目标给你 定制学习路线 + 实战示例

0