RabbitMQ 消息队列完全教程:从安装到用消息队列解耦你的高并发系统

下单后还要发短信、扣库存、推积分,一个接口慢就全挂?消息队列正是用来「削峰填谷、异步解耦」的利器。RabbitMQ 以易上手、文档好、协议全著称,是中小团队首选。本文带你从零跑通「生产者→交换机→队列→消费者」全流程。

一、原理背景

1.1 为什么需要消息队列

没有 MQ 时,订单服务直接同步调用库存、短信、积分,任一依赖慢/挂,订单就失败,且流量洪峰直接打垮下游。消息队列把「现在必须立刻做完」变成「先记下来,慢慢做」:

  • 异步:下单立即返回,后续动作后台消费。
  • 解耦:订单服务不关心谁来处理,只管发消息。
  • 削峰:瞬时 1 万请求先堆在队列,下游按自己节奏消费。

1.2 核心概念

  • Producer(生产者):发消息的程序。
  • Consumer(消费者):收消息处理的程序。
  • Queue(队列):存消息的缓冲区,先进先出。
  • Exchange(交换机):接收生产者消息并按规则「路由」到队列。常见类型:
    • direct:精确匹配 routing key。
    • fanout:广播给所有绑定队列,无视 key。
    • topic:按模式(如 order.*)模糊匹配,最灵活。
    • headers:按消息头匹配(少用)。
  • Binding(绑定):把队列和交换机连起来并指定 routing key。
  • ACK(确认)

🔒 付费文档

支付 5 积分后即可解锁全部内容