tencent cloud

消息队列 RabbitMQ 版

动态与公告
新功能发布记录
公告
产品简介
TDMQ 产品系列介绍与选型
什么是消息队列 RabbitMQ 版
产品优势
应用场景
开源托管版与 Serverless 版差异说明
开源版本支持说明
与开源 RabbitMQ 对比
高可用
使用限制
RabbitMQ 相关概念
开区地域
相关云服务
产品计费
计费概述
价格说明
计费示例
按小时付费转包年包月
续费说明
查看消费明细
欠费说明
退费说明
快速入门
入门流程指引
步骤1:准备工作
步骤2:创建 RabbitMQ 集群
步骤3:配置 Vhost
步骤4:使用 SDK 收发消息
步骤5:查询消息
步骤6:销毁资源
用户指南
使用流程指引
配置账号权限
创建集群
配置 Vhost
连接集群
管理消息
配置高级特性
管理集群
查看监控和配置告警
实践教程
实践教程使用说明
RabbitMQ 客户端实践教程
RabbitMQ 消息可靠性实践教程
RabbitMQ 支持 MQTT 协议说明
迁移集群
迁移方案概述
步骤1:购买云上实例
步骤2:迁移元数据上云
步骤3:开启双读写
API 参考(开源托管版)
API 概览
API 参考(Serverless 版)
History
Introduction
API Category
Making API Requests
Relevant APIs for RabbitMQ Serverless PAAS Capacity
RabbitMQ Serverless Instance Management APIs
Data Types
Error Codes
SDK 文档
SDK 概述
Spring Boot Starter 接入
Spring Cloud Stream 接入
Java SDK
Go SDK
Python SDK
PHP SDK
安全与合规
权限管理
网络安全
删除保护
变更记录
云 API 审计
常见问题
服务等级协议
联系我们

基础概念

PDF
聚焦模式
字号
最后更新时间: 2026-01-04 15:26:33
本文主要介绍了在使用 TDMQ RabbitMQ 版中常见的名词及解释说明。

Binding

RabbitMQ 中通过 Binding 将 Exchange 与 Queue 关联起来,这样 RabbitMQ 就知道如何正确地将消息路由到指定的 Queue了。

Binding key

在绑定(Binding)Exchange 与 Queue 的同时,一般会指定一个 binding key;生产者将消息发送给 Exchange 时,一般会指定一个 routing key;当 binding key 与 routing key 相匹配时,消息将会被路由到对应的 Queue 中。
在绑定多个 Queue 到同一个 Exchange 的时候,这些 Binding 允许使用相同的 binding key。
binding key 并不是在所有情况下都生效,它依赖于 Exchange Type,例如 fanout 类型的 Exchange 就会无视 binding key,而是将消息路由到所有绑定到该 Exchange 的 Queue。

Channel

在客户端的每个物理 TCP 连接里,可建立多个 Channel,每个 Channel 代表一个会话任务。

Connection

TCP 连接,生产者或消费者与 TDMQ RabbitMQ 版间的物理 TCP 连接。

Exchange

生产者将消息发送到 Exchange,由 Exchange 将消息路由到一个或多个 Queue 中(或者丢弃)。Exchange 根据消息的属性或内容路由消息。

Exchange Types

RabbitMQ 常用的 Exchange Type 有 fanout、direct、topic 、header 等。
Fanout:fanout 类型的 Exchange 会把所有发送到该 Exchange 的消息路由到所有与它绑定的 Queue 中。
Direct:Direct 类型的 Exchange 会把消息路由到那些 binding key 与 routing key 完全匹配的 Queue 中。
Topic:该类型与 direct 类型相似,Topic 类型 Exchange 支持多条件匹配和模糊匹配,即使用 Routing Key 模式匹配和字符串比较的方式将消息路由至与其绑定的 Queue 中。
Header:与 Routing Key 无关,匹配机制是匹配消息中的 Headers 属性信息。在绑定 Queue 与 Headers Exchange 之前声明一个 map 键值对,通过这个map 对象实现 Queue 和 Exchange 的绑定。当消息发送到 RabbitMQ 时会取到该消息的 Headers 与 Exchange 绑定时指定的键值对进行匹配;如果完全匹配则消息会路由到该队列,否则不会路由到该队列。

Message acknowledgment

消息回执,消费者在消费完消息后发送一个回执给 RabbitMQ,RabbitMQ 收到回执后才将消息从队列中删除,如果没有收到回执并检测到消费者的 RabbitMQ 连接断开,那么会将该消息发送给其他消费者进行处理。

Message durability

消息持久化,即 RabbitMQ 服务重启的情况下,也不会丢失消息,我们可以将 Queue 与 Message 都设置为(durable),这样可以保证绝大部分情况下我们的 RabbitMQ 消息不会丢失。

Prefetch count

消费者在开启 acknowledge 的情况下,对接收到的消息可以根据业务的需要异步对消息进行确认,prefetch 允许为每个 consumer 指定最大的 unacked messages 数目。例如:设置prefetchCount=10,则 Queue 每次给每个消费者(假设一共2个AB)发送10条消息,消费者无需马上回应,消费者将10条消息缓存本地客户端;当一个消费者处理完1条消息后 Queue 会再给该消费者发送一条消息。如果两个消费者都没有回复任何一条 ack,则 queue 就不会继续发送消息。

Queue

Queue(队列)是 RabbitMQ 的内部对象,用于存储消息。每个消息都会被投入到一个或多个 Queue 里。

Routing key

生产者在将消息发送到 Exchange 的时候,一般会指定一个 routing key,来指定这个消息的路由规则,而这个 routing key 需要与 Exchange Type 及 binding key 联合使用才能最终生效。
在 Exchange Type 与 binding key 固定的情况下(在正常使用时一般这些内容都是固定配置好的),我们的生产者就可以在发送消息给 Exchange 时,通过指定 routing key 来决定消息流向哪里。

Vhost

虚拟主机(Virtual Host,Vhost),用作逻辑隔离,分别管理各自的 Exchange、Queue 和 Binding,使得应用安全的运行在不同的 Vhost 实例上,相互之间不会干扰。一个实例下可以有多个 Vhost,一个 Vhost 里面可以有若干个 Exchange 和 Queue。生产者和消费者连接消息队列 RabbitMQ 版需要指定一个 Vhost。

User

用户(User)是指在 TDMQ RabbitMQ 版集群内部做权限划分的最小单位,您可以通过为用户配置权限为其赋予不同 Vhost 下的配置和读写权限。
每个用户都可以设置用户密码:用户可以通过在客户端中添加用户名和密码来访问 TDMQ RabbitMQ 版集群进行消息的生产消费。
每个用户都可以赋予权限:权限指的是用户对该 Vhost 下 Exchange,Queue的操作权限,包括配置权限,读写权限。配置权限会影响 Exchange,Queue的声明和删除。读写权限影响从 Queue 里读取消息,向 Exchange 发送消息以及 Queue 和 Exchange 的绑定(binding)操作。






帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈