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 等各种格式的数据,具体取决于业务需求
本文来自博客园,作者:诸葛匹夫,转载请注明原文链接:https://www.cnblogs.com/shenxingzhuge/p/18734269
卡里离冰冷的40个亿还差39多个亿
浙公网安备 33010602011771号