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

RabbitMQ和循环主题交换

戚高洁
2023-03-14

我正在寻求一些关于如何最好地配置我的rabbitMQ交换的建议。

我试着用循环系统的方法来交换话题。每个使用者都有自己的(唯一的)命名队列连接到主题交换。我希望交换为“相同”主题循环消息到每个使用者队列-比如*.log

我尝试了多个组合,但似乎只能同时将消息传递到使用者队列,这实际上意味着我要处理两次消息,每个使用者一次。

为了清楚起见,我还有一个扇出交换,我用它来“控制”消费者(启动、停止等)。这应该在任何结果中都保持在适当的位置。

任何关于如何最好地实现所述结果的指导都是很好的。

共有1个答案

章阳波
2023-03-14

每个使用者都有自己的(唯一的)命名队列连接到主题交换

诀窍是让您想要在其中循环的每个工作者/使用者设置一个命名队列,并且所有人都使用相同的队列,而不是创建自己的队列。

因此您可以为所有“日志”工作者创建一个名为“log”的命名队列。您将为所有“foo”工作者创建一个不同的命名队列,例如“foo”。请求将循环传递给查看同一队列的所有使用者。

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

  • RabbitMQ在下列情况下会循环分发消息吗? RabbitMQ配置: 交换类型-主题 路由密钥-通知# 制片人正在将消息推送到上面的交流中,并遵循以下不同的主题 - notify.log.# , notify.status.#, notify.priceChange.# 有4个消费者在不同的服务器上运行。 > 3个消费者在负载均衡器下执行相同的处理并在同一应用程序的不同实例上运行。(他们想消费生

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

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

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

  • 我的RabbitMQ上有一个主题交换。发送消息时出错。 接收部分: 发送部分: 第行出错:< code > channel . EXCHANGE declare(EXCHANGE _ NAME," topic ");异常:无法使用不同的类型、持久性、内部或自动删除值、class-id=40、method-id=10在vhost“/”中重新声明exchange“EX _ TEST” 如何解决这个问题