最新版本的RabbitMQ有四种交换机类型,分别是Direct exchange、Fanout exchange、Topic exchange、Headers exchange。
Direct Exchange – 处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记为“dog”的消息才被转发,不会转发dog.puppy,也不会转发dog.guard,只会转发dog。
Fanout Exchange – 不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。
Topic Exchange – 将路由键和某模式进行匹配。此时队列需要绑定要一个模式上。符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词。因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs”。我在RedHat的朋友做了一张不错的图,来表明topic交换机是如何工作的:
注:这种情况下队列会收到所有路由器中符合topic规则的消息
Headers exchange – 忽略,没有应用研究过。
相关推荐
采用python编写的批量删除rabbitmq的队列或交换机。 1.修改rabbitmq_delete.py中rabbitmq的配置; 2.执行以下命令: 删除队列: python3 rabbitmq_delete.py -k ‘udata.climb’ -d 1 删除交换机: python3 rabbitmq_...
Jemter测试MQ的插件 JMeter-Rabbit-AMQP在github上17年便停止更新了,不支持rabbitmq的交换机类型“x-consistent-hash”,为此我更改了源码使其支持"x-consistent-hash
在Spring Boot中集成RabbitMQ,可以方便地管理和发送消息,而Direct交换器是RabbitMQ中的一种基本交换器类型,它按照路由键将消息精确地投递到指定的队列。 首先,我们需要在Spring Boot项目中添加RabbitMQ的相关...
在这个场景中,我们关注的是“rabbitmq_delayed_message_exchange-20171215-3.6.x.ez.zip”这个压缩包,它包含了RabbitMQ的一个特定功能——延时消息交换机。 延时消息交换机是RabbitMQ的一个插件,允许我们设置...
在Java中使用RabbitMQ时,通常需要理解并掌握三种主要的Exchange类型:Direct、Fanout和Topic。这三种类型的Exchange各自有不同的路由策略,适应不同的应用场景。 1. **Direct Exchange(直接交换机)** Direct ...
但通过安装`rabbitmq_delayed_message_exchange`插件,我们可以创建一种特殊类型的交换机——延迟交换机,它能够根据消息头中的特定字段决定消息的投递时间。 2. X_DELAYED_TYPE属性:在创建延迟交换机时,需要设置...
消息队列:RabbitMQ:RabbitMQ高级特性:Exchange类型.docx
**RabbitMQ消息插件:rabbitmq_delayed_message_exchange 3.7**...综上,`rabbitmq_delayed_message_exchange`插件是RabbitMQ中实现消息延迟投递的重要工具,通过合理的配置和使用,可以在各种业务场景中发挥重要作用。
延迟消息交换机介绍 在传统的RabbitMQ中,消息一旦发布到交换机,就会立即路由到绑定的队列。然而,延迟消息交换机允许我们设置一个特定的延迟时间,使得消息在指定的时间后才被路由到队列,从而实现消息的延迟...
这个插件允许我们创建特殊类型的交换机,这些交换机可以将消息放入一个具有特定延迟时间的队列,以便在预定的时间之后才被消费者处理。这在处理如订单支付超时、定时发送邮件等需要延时处理的任务时非常有用。 在...
- `exchange:` 定义交换机,包括类型(Direct、Fanout、Topic或Headers)和名称。 - `queue:` 定义队列,包括名称和是否持久化。 - `binding:` 配置队列与交换机的绑定关系,包括路由键(对于Direct和Topic模式)或...
交换机的持久化有助于保证RabbitMQ服务重启后,Exchange仍然存在,避免因服务重启导致的消息丢失。在Java和Spring中声明Exchange时,设置`durable`属性为`true`: - **Java方式**: ```java private static final...
而"rabbitmq_delayed_message_exchange"是RabbitMQ的一个自定义交换机类型,它允许我们在发布消息时指定一个延迟时间。这个时间以毫秒为单位,可以用来控制消息何时到达队列并可被消费。 使用延迟消息交换机的步骤...
在这个场景中,我们关注的是`rabbitmq_delayed_message_exchange-20171201-3.7.x.ez`插件,这是一个用于RabbitMQ的特殊交换机类型,它允许我们延迟消息的投递,即在特定时间后才将消息发送到队列。 **延迟消息...
RabbitMQ延迟队列插件,即rabbitmq_delayed_message_exchange-3.8.0,是一个针对RabbitMQ消息代理的扩展,旨在提供一种机制,使得消息能够在特定延迟后才被投递到相应的队列。这个功能在很多业务场景中非常有用,...
延迟消息交换基于RabbitMQ的自定义交换机类型,它扩展了标准的AMQP协议。在RabbitMQ中,交换机负责将发布者发布的消息路由到合适的队列。默认情况下,消息是立即发送的,但有了延迟交换,我们可以指定消息在多少毫秒...
1. **直连交换机(Direct Exchange)**:直连交换机是最简单的交换机类型,它使用完全匹配的路由键(binding key)来将消息路由到特定的队列。生产者发送消息时指定一个路由键,如果该键与队列绑定的键完全相同,...
在这个例子中,"rabbitmq_delayed_message_exchange"插件提供了一个名为"x-delayed-message"的自定义交换机类型。这种交换机允许发布者在发送消息时指定一个延迟时间,RabbitMQ会将消息放入一个内部的延迟能力队列,...
安装一个插件即可:https://www.rabbitmq.com/community-plugins.html ,下载rabbitmq_delayed_message_exchange插件,然后解压放置到RabbitMQ的插件目录...rabbitmq-plugins enable rabbitmq_delayed_message_exchange