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

在RabbitMQ主题交换中路由与模式不匹配的消息

尚鸿才
2023-03-14

使用以下路由键将两个队列绑定到主题交换:

队列A,与路由密钥模式匹配绑定。foo队列B,与路由密钥模式匹配绑定。条形码

我想在此交换中添加第三个队列,该队列接收的消息既不是foo消息,也不是bar消息。如果我用路由键绑定这个队列,我自然会得到我需要的所有消息,但包括我不想要的foo和bar。

路由消息的任何方式都可以修补模式<代码>非*。foo和NOT*。条形码?

共有1个答案

濮阳宜
2023-03-14

如果您想捕获所有与任何绑定不匹配的消息,可以使用备用交换来完成。

为现有的交换机添加备用交换机并从该备用交换机收集所有消息:

standard workflow --> [main exchange (topic)]
                    |     --> via binding *.foo -->  [foo queue]
                    |     --> via binding *.bar -->  [bar queue]
                    v      
           [alternate exchange (let it be topic too)]
                    --> via binding * --> []

对于更具体的情况,如果您有N个绑定,但希望捕获与M个绑定不匹配的所有消息(其中M

 类似资料:
  • 我基本上是在RabbitMQ上工作。我正在编写一个python代码,其中我正在尝试查看在主题交换的情况下路由密钥是否与绑定模式匹配。我遇到了这个链接 - https://www.rabbitmq.com/tutorials/tutorial-five-java.html 它说 - “但是绑定键有两个重要的特殊情况: 那么如何将消息的路由键与队列的绑定模式相匹配呢?例如,消息的路由键是“my.rou

  • 我有点迷茫,正在尝试实施话题交流,不确定需要什么。 我想有几个路由键和一个主题交换(默认的amq.topic)。我的钥匙是: 创建customer.app 创建customer.app 客户。*.创建 我希望我的队列是持久的,但是我需要1个“客户”队列还是2个appA和appB队列?我已经弄清楚了我的发布者;连接、交换声明、基本发布。 但我正在与消费者斗争。假设我想打开3个控制台,上面提到的每个路

  • 我成功地建立了一个话题交换,并且能够同时向几个消费者传递消息。 我还想向竞争对手传递信息,并继续使用主题交换。我了解到,使用相同的队列名称可以让消费者竞争消息。然而,我可能弄错了,因为我无法使它工作。 为同一主题的多个侦听器设置: < li >申报话题交流 < li >对于每个侦听器,用自动生成的名称声明一个新队列 < li >用给定的主题路由关键字将此队列绑定到上面的交换 如何将相互竞争的消费者

  • 我们正在重建消息队列系统。在讨论RabbitMQ交换类型时,我注意到有两种可能的解决方案可以实现路由消息的多播特性。 > < li> 话题交流。通过设置主题交换和特定模式的路由关键字,消息将被路由到指定的队列。即产品。*.根据AMQP规范,这通常是实现发布/订阅模式的交换类型。 报头交换。所谓的“类固醇直接交换”。对于多播消息,它甚至更灵活,因为忽略了路由键,而是每个消息都有“x-match”头,

  • 我正在寻求一些关于如何最好地配置我的rabbitMQ交换的建议。 我试着用循环系统的方法来交换话题。每个使用者都有自己的(唯一的)命名队列连接到主题交换。我希望交换为“相同”主题循环消息到每个使用者队列-比如。 我尝试了多个组合,但似乎只能同时将消息传递到使用者队列,这实际上意味着我要处理两次消息,每个使用者一次。 为了清楚起见,我还有一个扇出交换,我用它来“控制”消费者(启动、停止等)。这应该在

  • 我有一个场景,我需要执行一系列流程,每个步骤都在独立的应用程序中完成和扩展。我正在为所有交换使用主题交换。当前拓扑如下所示: P- 我们正在“版本化”队列,以处理可能影响消息结构的需求更改。绑定可能如下所示: 步骤1。exchange绑定到步骤1。v1。使用绑定键step1排队。v1 步骤1。exchange绑定到步骤1。v2。使用绑定键step1排队。v2级 还有其他与版本无关的绑定模式也使局部