温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - When to use Which Exchange in RabbitMQ?
rabbitmq

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

发布于 2020-04-17 15:31:53

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

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

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

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

标头交换 -标头应与密钥匹配。

谁能详细解释每个交换和用例?

查看更多

提问者
Mahesh
被浏览
90
Mark Bramnik 2020-02-05 14:00

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

这里有些例子:

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

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

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