-
bbianji8 用户
Kafka 消息队列完全教程:从安装到用消息队列解耦你的高并发系统
Kafka 是 Apache 开源的分布式消息队列/流处理平台,几乎所有大厂的后端都在用它做日志收集、削峰填谷、异步解耦。本文带你从零跑通生产者-消费者,理解 Topic、分区、消费者组。
一、原理背景
1.1 为什么用消息队列
没有消息队列时,下单接口直接调库存、发短信、推积分——任一步慢或挂了,下单就失败,且耦合严重。
引入 Kafka 后:
下单服务 → 发消息到 Kafka → [库存消费者][短信消费者][积分消费者]
好处:解耦、异步、削峰(瞬时洪峰先堆在队列,消费者按能力消费)。
1.2 核心概念
| 概念 | 说明 |
|---|---|
| Topic | 消息主题(如 order-created) |
| Partition | 分区,Topic 的物理分片,保证顺序、并行 |
| Producer | 生产者,发消息 |
| Consumer | 消费者,取消息 |
| Consumer Group | 消费者组,组内一条消息只被一个消费者消费(实现负载均衡) |
| Broker | Kafka 服务节点 |
| Offset | 消费者在分区里的消费进度 |
1.3 消息模型特点
- 持久化:消息写磁盘,可重复消费(区别于很多内存队列);
- 高吞吐:顺序写 + 零拷贝,单机轻松十万级 TPS;
- 分区有序:同一分区内消息严格