1.8 KiB
1.8 KiB
id, title, type, domain, stack, tags, week
| id | title | type | domain | stack | tags | week | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| backend.mq.index | 消息队列(RabbitMQ / Kafka) | index | backend |
|
|
|
消息队列(RabbitMQ / Kafka)
消息队列用来异步解耦(下单后发短信、加积分不阻塞主流程)、削峰填谷(抢购请求先进队列)、广播(一个事件多个系统消费)。招聘要求里 RabbitMQ 和 Kafka 都常见:业务系统多用 RabbitMQ,日志、埋点、数据管道多用 Kafka。面试最常问的是可靠性、幂等、顺序、积压。
学习路线
| 顺序 | 课程 | 级别 | 预计 |
|---|---|---|---|
| 1 | RabbitMQ:交换机、队列、确认机制、死信和延迟 | 基础 | 3 小时 |
| 2 | Kafka:主题、分区、消费组、位移和顺序 | 进阶 | 3 小时 |
| 3 | 可靠性:不丢消息、幂等消费、发件箱模式、积压处理 | 进阶 | 3 小时 |
企业场景
面试题
示例代码
- examples/delay-cancel:Python + aio-pika,用 TTL + 死信交换机实现延迟取消;设置
AMQP_URL后运行 - examples/outbox:只用标准库演示发件箱模式和幂等消费,直接运行
在 16 周计划中
官方资料
- RabbitMQ 文档:https://www.rabbitmq.com/docs
- Kafka 文档:https://kafka.apache.org/documentation/
- aio-pika:https://docs.aio-pika.com/