【发布时间】:2020-05-20 08:03:19
【问题描述】:
我已经阅读了很多关于 RabbitMQ 交换的文章。 但是我找不到任何有用的文章来解释每个交易所的用例。 他们只是在说
Direct Exchange - 绑定键和路由键应该相同。
主题交换 - 路由键应与绑定键的路由模式匹配。
Fanout Exchange - 绑定到该特定交换的所有队列都会收到消息。
标头交换 - 标头应与键匹配。
谁能详细解释一下它的每个交换和用例?
【问题讨论】:
标签: rabbitmq
我已经阅读了很多关于 RabbitMQ 交换的文章。 但是我找不到任何有用的文章来解释每个交易所的用例。 他们只是在说
Direct Exchange - 绑定键和路由键应该相同。
主题交换 - 路由键应与绑定键的路由模式匹配。
Fanout Exchange - 绑定到该特定交换的所有队列都会收到消息。
标头交换 - 标头应与键匹配。
谁能详细解释一下它的每个交换和用例?
【问题讨论】:
标签: rabbitmq
嗯,要使用的交换类型的选择很大程度上取决于您的用例,您有责任选择最适合您的交换类型。
这里有一些例子:
假设您想要一个广播(您有多个应该接收消息的应用程序实例)。例如,系统中发生了一些事情(资源变得可用,缓存应该失效,你给它命名)并且你希望所有实例都知道它。那么您的第一个赌注将是使用扇出交换。
另一个例子。您希望单播:发送一条消息并且您有多个消费者,但您希望只有一个消费者会收到一条消息并尝试处理它。在这种情况下,您不能使用扇出式交换,而是选择其他类型的交换(例如直接交换)。
总而言之,我相信您应该有兴趣阅读 this article,它描述了相当丰富的 amqp 协议的各种概念,并提供了不同类型交换的用例示例。
【讨论】: