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