rabbitmq发送消息的4大参数解释

在rabbitmq的网页控制台界面发送消息的时候,有如下几个消息参数

 

 

1.Routingkey

是一个用于消息路由的字符串,主要作用是协助交换机(Exchange)把消息准确地路由到合适的队列(Queue)。

不同类型的交换机对 routingKey 的处理方式有所不同

 

常见交换机类型和routingkey作用

1.直连交换机(Direct Exchange):消息会被路由到绑定健与routingkey精确匹配的队列中。例如当routingkey为hello时,交换机就会把消息发送到绑定健为hello的队列中

 

2.主题交换机(Topic Exchange): routingkey 可以使用通配符,*代表匹配一个单词,#代表匹配零个或者多个单词。比如,绑定健为 hello.#的队列可以接收routingkey为hello.world

hello.china,hello.usa等以hello.开头的信息。

 

3.扇形交换机(Fanout Exchange): routingkey在此类型交换机中会被忽略,交换机把接收到的消息发送给所有与之绑定的队列。

 

2.headers消息头

headers是一组键值对形式的元数据,它能够为消息添加额外的描述信息。与routingkey不同,headers不依赖于字符串匹配来进行消息路由,而是基于消息头中的键值对信息。

这种靠头信息进行消息路由的就是Headers Exchange,头交换机。使用的很少。了解即可。也就是说其他类型的交换机路由消息是靠routingkey,而头交换机依赖headers信息。

比如我们在绑定队列和交换机时候,会填一些参数:

 

 

 

比如参数填 x-match 值为all时候,要求消息的所有headers键值对都与队列绑定的headers键值对匹配,消息才会被路由到该队列,当参数为 x-match any 时候,只要有一个键值对

匹配即可。下面我们看具体操作。

先创建一个队列,命名为header

 

 

由于rabbitmq默认自带头交换机,这里我就不创建了

 

接下来绑定交换机和队列

 

 

先来个错误的示范

 

 

我们再来一个正确的示范

 

点击 publish message按钮提示成功

 

看一下header队列中有没有数据

 

3.properties属性

这个参数同样是用于存储消息元数据的,他包含了消息的一些通用属性,如消息的优先级,过期时间,内容类型等。

priority: 指定消息的优先级,高优先级的消息可能会被优先处理。(可能

expiration: 设定消息的有效时长,超过该时间后消息将被自动丢弃。这有助于避免处理过时的消息

contentType: 说明消息的内容格式,如 application/json,text/plain等,方便消费者正确的解析消息内容。实际开发肯定是提前约定好发消息的内容格式

 

4.Payload 

指的是消息中真正包含的业务数据内容,
也就是消息的核心部分。它可以是文本、JSON、XML 等各种格式的数据,具体取决于业务需求

 

posted @   诸葛匹夫  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示