当前位置: 首页 > 知识库问答 >
问题:

何时在RabbitMQ中使用哪个Exchange?

贝礼骞
2023-03-14

我读过很多关于RabbitMQ中交换的文章。但我找不到任何有用的文章来解释每个交换的用例。他们所说的是

直接交换-绑定密钥和路由密钥应该相同。

主题交换-路由键应与绑定键的路由模式匹配。

扇出交换——所有绑定到特定交换的队列都将得到消息。

标题交换-标题应该与关键字匹配。

有人能详细解释它的每个交换和用法吗?

共有1个答案

越扬
2023-03-14

选择使用哪种交换类型很大程度上取决于您的用例,选择最适合您的交换类型是您的责任。

以下是一些例子:

> < li>

假设您想要一个广播(您有多个应用程序实例应该接收消息)。例如,系统中发生了一些事情(资源变得可用,缓存应该失效,等等),并且您希望所有实例都知道它。那么你的第一个赌注将是使用扇出交换。

这是另一个例子。您希望单播:发送一条消息,并且您有多个消费者,但您希望只有一个消费者将收到一条消息并尝试处理它。在这种情况下,您不能使用扇出交换,您将选择其他类型的交换(例如,直接交换)。

总而言之,我相信你应该有兴趣阅读这篇文章,它描述了相当丰富的amqp协议的各种概念,并为不同类型的交易所提供了用例示例。

 类似资料:
  • 我将RabbitMQ包用于Symfony2 web框架。我的问题是,在TERMINAL中运行多个workers后,如何避免创建多个连接(以防止使代理过载)?在下面的示例中,我运行了两个workers,结果有两个connections/channel。 config.yml services.yml

  • OnMaploadedCallback的使用: OnMapReadyCallback的使用: 谢谢!!

  • 1、解决异步问题 例如用户注册,发送邮件和短信反馈注册成功,可以使用RabbitMQ消息队列,用户无需等待反馈。 2、服务间解耦 订单系统和库存系统,中间加入RabbitMQ消息队列,当库存系统出现问题时,订单系统依旧能正常使用,降低服务间耦合度。 3、秒杀系统 利用RabbitMQ的最大值,实现秒杀系统。

  • 本文向大家介绍RabbitMQ 的使用场景有哪些?相关面试题,主要包含被问及RabbitMQ 的使用场景有哪些?时的应答技巧和注意事项,需要的朋友参考一下 抢购活动,削峰填谷,防止系统崩塌。 延迟信息处理,比如 10 分钟之后给下单未付款的用户发送邮件提醒。 解耦系统,对于新增的功能可以单独写模块扩展,比如用户确认评价之后,新增了给用户返积分的功能,这个时候不用在业务代码里添加新增积分的功能,只需

  • 我正在用Spring编写一个服务,并使用Spring AMQP连接到Rabbitmq。 我有两个rabbitmq集群,一个仅用于发布消息(消息通过联合插件发送到另一个集群),另一个集群用于声明最终用户将从中使用的队列。 节点位于aws lb后面,每个集群有一个lb。 我在代码中使用CachingConnectionFactory和RabbitTemboard、RabbitAdmin,我希望与所有节