中间件速查手册
消息队列绑定

Binding 是什么?

Exchange 和 Queue 之间的路由规则

类比:分拣中心墙上的「发往朝阳区的走 3 号口」

它是什么

Binding 是一条关系:把某个 Queue 绑到某个 Exchange 上,并带一个 binding key。消息到达 Exchange 时,用 routingKey 去和所有 binding key 比对,命中的队列都收到一份。

一个队列可以绑定多个 Exchange,一个 Exchange 也可以绑定多个队列,形成一张路由网。

匹配规则

不同 Exchange 类型的匹配逻辑完全不同,这是最容易搞混的地方。

  • Direct:routingKey == bindingKey
  • Topic:按 . 分段,* 匹配一段,# 匹配零到多段
  • Fanout:不比较 key,绑定即投递

调试建议

消息「发出去了但没收到」,九成是 binding key 写错或队列没绑定。用管理界面的 Exchange → Bindings 页面直接看绑定关系,比猜快得多。

它出现在这些中间件里

相关概念