RabbitMQ-绑定 (Bindings)

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ(本章节)

前面的内容,我们介绍了虚拟主机(vhost),但是它只是一个逻辑概念,它必须配合对应的交换机(Exchange),队列(Queue),绑定(Binding)才能具体使用,今天我们就来介绍绑定。

前面我们已经在虚拟主机下创建了交换机,它负责接收消息,也创建队列,它负责存消息,可是消息要怎么从交换机到队列呢,它就是我们今天要讲的绑定。

在 RabbitMQ 的架构中,绑定(Binding) 是连接交换机(Exchange)与队列(Queue)的"消息路由规则",它决定了消息如何从入口点(交换机)流向目的地(队列)。如果把交换机比作邮局的分拣中心,队列是收件人的邮箱,那么绑定就是贴在包裹上的"邮寄地址标签"。

一、绑定的本质:路由规则的三要素

一个完整的绑定包含三个核心元素:

源(Source):绑定的起点,必须是交换机。生产者发送消息的目标地。

目标(Destination):绑定的终点,可以是队列或另一个交换机(实现级联路由)。

路由键(Routing Key):生产者发送消息时指定的"消息标签"(如 order.payment),

绑定键(Binding Key):创建绑定时定义的"路由规则"(如 order.*),用于匹配路由键。关键区别:

路由键 (Routing Key) = 消息的"身份证"

绑定键 (Binding Key) = 路由规则的"过滤器"

二、不同交换机类型的绑定规则

绑定行为因交换机类型而异:

交换机类型

绑定规则

示例

Direct(直连)

精确匹配路由键和绑定键(全等匹配)

绑定键=payments → 仅路由键=payments 的消息

Topic(主题)

绑定键支持通配符:*(匹配一个单词)、#(匹配零或多个单词)

绑定键=orders.* → 匹配 orders.neworders.cancel

Fanout(扇出)

忽略绑定键和路由键,广播到所有绑定队列

绑定键可留空(任意值均无效)

Headers(头部)

绑定键被忽略,改用消息头(Headers)中的键值对匹配(需定义 x-match=all/any

绑定参数:{"x-match":"all", "type":"urgent"}

三、绑定实操

从队列入口,将当前队列和某交换机绑定。

从交换机入口,将当前交换机到队列或者其他交换机。

无论从队列入口还是从交换机入口,绑定成功以后,就可以向交换机发送消息,然后根据交换机的类型和绑定规则,把信息转发到对应的队列,等待消费者消息。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
qq_452396234 小时前
第十五篇:《UI自动化中的稳定性优化:解决flaky tests的七种武器》
运维·ui·自动化
j_xxx404_5 小时前
Linux:静态链接与动态链接深度解析
linux·运维·服务器·c++·人工智能
_只道当时是寻常5 小时前
【Codex】Ubuntu 安装 Codex CLI 并解决 Clash 代理与账号认证问题
linux·ubuntu·chatgpt
Elastic 中国社区官方博客6 小时前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
brucelee1866 小时前
Claude Code 安装教程(Windows / Linux / macOS)
linux·windows·macos
jsons17 小时前
给每台虚拟机设置独立控制台密码
linux·运维·服务器
嵌入式×边缘AI:打怪升级日志7 小时前
全志T113 Tina-SDK 配套工具链开发应用(从Makefile到CMake再到Autotools)
linux
嵌入式×边缘AI:打怪升级日志7 小时前
全志T113嵌入式Linux开发环境搭建(VMware + Ubuntu 18.04)详细步骤
linux·ubuntu
云栖梦泽8 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
福大大架构师每日一题8 小时前
openclaw v2026.4.24 发布:Google Meet 深度集成、DeepSeek V4 上线、浏览器自动化与插件架构全面升级
运维·架构·自动化·openclaw