何时在RabbitMQ中使用哪个交易所?

问题描述 投票:1回答:1

我已经阅读了很多关于RabbitMQ交流的文章。但是我找不到任何有用的文章来解释每个交换的用例。他们说的只是

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

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

Fanout交换-绑定到该特定交换的所有队列都将收到消息。

Header Exchange-标头应与密钥匹配。

任何人都可以详细解释每个交换和用例吗?

rabbitmq
1个回答
1
投票

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

以下是一些示例:

  1. 让我们说您要broadcast(您有多个应该接收消息的应用程序实例)。例如,系统中发生了一些事情(资源变为可用,缓存应该失效,请为它命名),并且您希望所有实例都知道它。然后,您的第一个赌注将是使用fanout交换。

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

总之,我相信您应该阅读this article,它描述了相当丰富的amqp协议的各种概念,并提供了不同类型的交换的用例示例。

© www.soinside.com 2019 - 2024. All rights reserved.