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

RabbitMQ具有多个路由密钥的单交换和单队列

应俊爽
2023-03-14

我试图使用BasicGet仅检索与通道的Exchange/Queue/RoutingKey组合匹配的消息。

我们的路由密钥的一个例子是

Development:STACK_1_WEBSERVER_V2:1:2.9.0.0

我遇到的问题是,路由密钥被完全忽略,所有消息无论指定的路由密钥是什么,都可以通过BasicGet获得。

我使用的是直接交换。我认为直接就足够了,我不需要通配符的能力,您可以通过主题交换获得路由键。

直接交换和路由密钥解决方案是否应该与BasicGet配合使用?

谢啦

共有1个答案

农均
2023-03-14

直接交换和路由密钥就足够了,尽管您的getter正在从具有多个路由密钥的消息的队列中提取。您需要为每个需要自己的消息组的getter设置单独的队列。

这与基本代码没有区别。获取基本信息。在AMQP中消费。

从队列中提取邮件时,exchange类型和路由密钥无关紧要,因为邮件已被路由到队列。

 类似资料:
  • 我在我的项目中使用RabbitMQ,我想知道是应该使用具有多个路由密钥的单个交换还是使用多个交换?哪个效率更高? 例如,如果我使用带有路由键A、B、C的单个exchange E,消费者连接到该exchange E,并使用A、B、C路由键获取数据。另一种选择是,我应该将其发送到exchange A、exchange B、exchange C,而不使用路由密钥,并且消费者可以连接到每个exchange

  • 很好的一天。 有没有办法通过基于浏览器的UI检索现有交换(扇出或主题)的路由密钥? 我无法访问客户端源代码(生产者)以查看正在将哪些路由密钥发送到模型。 非常感谢。 编辑:想法是尝试锁定现有的扇出交换(我无法重新配置)。我想创建一个新的exchange,将其绑定到此exchange,并只过滤掉某些消息。

  • AMQP/RabbitMQ新手。试图掌握概念/原则,并偶然发现了这一点。 以下两种范式之间有什么区别? Fanout Exchange:FanoutExchange- 相对 直接交换:直接交换- 两者不是都达到相同的效果吗?如果没有,请有人可以阐明它有什么不同,以及在哪些情况下比其他情况更可取? 为什么它们有这两种类型的交换,而这两种交换都可以通过调整绑定中的路由键来实现? 谢谢

  • 我正在寻找一种在RabbitMQ中进行分层路由的方法。我试图在留档中找到答案,但突然失败了。 通常,RabbitMQ允许您通过某个路由密钥连接到直接交换机,但我不清楚如何在多个交换机之间进行路由。 例如,假设我们有“根”交换和“主机1”交换,路由键为“主机1”。我有一个通过路由键绑定到“主机1”交换的队列。我可以用routing_key发布消息到“根”交换吗,比如“主机1.31261”?显然,它不

  • 我正在尝试将两个队列绑定到交换。两个队列必须使用相同的消息(路由密钥)。我能够直接使用RabbitMQ创建这两个队列。但是,当我尝试使用Apache Camel时,它会引发一个异常,指出“同一endpoint不允许使用多个使用者”。我假设Camel一定可以做到这一点,因为它是RabbitMQ中的一个基本功能。 我正在使用Camel RabbitMQ插件。是否需要一些额外的配置来实现此功能?

  • 是否有可能为带有“直接”类型的Rabbitmq交换设置一些“默认”队列? 比如,我有一个exchange A,队列Q1、Q2、Q3和QDef。因此,如果使用路由密钥Q1发布某个消息,它将转到Q1。但如果消息使用路由密钥Q4,则它应该转到QDef。若路由密钥不是现有队列的名称,则消息应转到QDef。 有可能做兔子吗?也许交换不应该是“直接”类型,而应该是其他类型? 换句话说。如果某个消费者为某个路由