首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我们需要在RabbitMQ中路由密钥?

问为什么我们需要在RabbitMQ中路由密钥?
EN

Stack Overflow用户
提问于 2016-03-30 15:30:45
回答 2查看 17.8K关注 0票数 27

为什么我们需要路由键将消息从exchange路由到队列?难道我们不能简单地使用队列名称来路由消息吗?此外,在发布到多个队列的情况下,我们可以使用多个队列名称。有谁能指出我们实际上需要路由键和队列名称还不够的场景吗?

EN

回答 2

Stack Overflow用户

发布于 2016-03-30 16:55:09

有几种类型的交换。fanout交换忽略路由键并将消息发送到所有队列。但几乎所有其他交换类型都使用路由关键字来确定哪个队列(如果有的话)将接收消息。

tutorials on the RabbitMQ website描述了几种用例,其中不同的交换类型是有用的,并且路由关键字是相关的。

例如,tutorial 5演示了如何使用topic交换将日志消息路由到不同的队列,具体取决于每条消息的日志级别。

如果要以多个队列为目标,则需要将它们绑定到fanout交换,并在发布服务器中使用该交换。

不能在发布服务器中指定多个队列名称。在AMQP中,您不是将消息发布到队列,而是将消息发布到exchange。确定相关队列是交换的责任。消息有可能被路由到根本没有队列的地方,然后就被丢弃了。

票数 19
EN

Stack Overflow用户

发布于 2019-01-10 19:00:07

将队列名称与应用程序解耦对于提高灵活性非常有用。

  • 您可以建立多个队列来使用同一消息,但队列不能具有相同的名称。
  • 在某些情况下,消息的发起者不知道队列的名称。(就像水平扩展服务器时随机生成的队列名称一样)
  • 交换可能会为不止一种类型的使用者路由消息。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36302341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档