Routing Key(路由键)和 Binding Key(绑定键)mq

Carlos 发布于 2026-04-09 52 次阅读


核心比喻:快递分拣中心

想象一下,你(生产者 Publisher)要把一个包裹(消息 Message)寄出去。

  1. Exchange(交换机) = 快递分拣中心(或分拣员)
    • 注意: 分拣中心本身绝对不存包裹!它的唯一工作,就是拿到包裹后,决定把它扔到哪辆货车上。
  2. Routing Key(路由键) = 贴在包裹上的“具体收件地址”
    • 这是你发件时,临时写在包裹上的标签(比如:写着“北京.朝阳区”)。
  3. Queue(队列) = 装包裹的货车(最终目的地)
    • 货车是真正装包裹的地方。
  4. Binding Key(绑定键) = 货车挡风玻璃上挂的“揽收牌子”
    • 当一辆货车(Queue)停在分拣中心(Exchange)门口时,它必须挂个牌子,告诉分拣员自己收哪里的货(比如牌子上写着“只收北京的件”)。

它们俩到底啥关系?

关系就是:分拣员(Exchange)拿到包裹后,会把包裹上的地址(Routing Key),拿去和所有货车上的牌子(Binding Key)做对比。匹配上了,就把包裹扔进对应的货车(Queue)。

但这群分拣员(Exchange)有三种不同的“工作性格”(也就是交换机的三种类型):

1. Fanout 交换机(“盲人”分拣员 - 广播模式)

  • 关系:毫无关系。
  • 逻辑: 这个分拣员是个盲人,他根本不看包裹上的 Routing Key,也不看货车上的牌子。只要有货车停在他面前,他直接把包裹复制出 N 份,每个货车扔一份。
  • 场景: 发布全服游戏公告。

2. Direct 交换机(“死心眼”分拣员 - 精准路由)

  • 关系:必须一模一样(绝对等于)。
  • 逻辑: 分拣员极其死板。如果包裹上的地址(Routing Key)写着 apple,他只把包裹扔进牌子(Binding Key)也精确写着 apple 的货车里。多一个字母少一个字母都不行。
  • 场景: 极其明确的单对单业务(比如:只给特定的邮箱发验证码)。

3. Topic 交换机(“高智商”分拣员 - 通配符模式)⭐⭐⭐大厂最爱

  • 关系:智能模糊匹配。
  • 逻辑: 分拣员非常聪明,懂得看大区代码。
    • 货车 A 的牌子是 china.weather(只关心中国天气)。
    • 货车 B 的牌子是 china.#(关心中国的一切,# 代表后面哪怕有无数个词都行)。
    • 如果你的包裹上(Routing Key)写着 china.news,分拣员一看,不符合 A 货车,但符合 B 货车,就扔给 B。

现在你明白了吗?Routing Key 就是动态变化的“收件地址”,而 Exchange 就是那个拿着地址去匹配的“分拣员”。 它们俩配合,决定了你的消息最终会流向哪里。在代码里,这就是解耦的核心魔法!

✨职务:华夏大地区域代理人 | 熬夜秃头项目主理人 💳黑卡:校园一卡通全球辅导版持有者 📍地点:宇宙-银河系-地球-东北蹲分部 🥂生活方式:沉迷于廉价多巴胺 | 致力于在该醒的时候睡觉 🚫拒绝:拒绝早起 | 拒绝内卷| 拒绝借钱 简介:虽然我没钱,但我有时间;虽然我没才华,但我有脾气。
最后更新于 2026-04-09