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

RabbitMQ:从队列为多个使用者分派固定消息

岳嘉石
2023-03-14

有没有一种方法可以限制RabbitMQ队列只将固定数量的消息从队列发送给使用者?

关于这一问题的更多背景资料:

为什么一次只处理2条消息?:Q2消息正在执行web服务调用,而web服务endpoint(第三方)只能同时服务2个消息。

我们不能使用并发吗?:如果我们使用ListenerContainer(Spring AMQP),则容器是每个消费者的。我们可以限制一个消费者一次可以获取多少消息,但是当我们有10个消费者时,如果队列中有消息,每个消费者将获得它的份额。

查看RabbitMQ中是否有我们可以使用的配置或任何建议的解决方案。

提前道谢!

共有1个答案

焦苏燕
2023-03-14

我非常肯定消费者预取将完成你想要的。但是,Q2只能有一个消费者这样做。没有办法在多个消费者之间进行协调--您必须自己进行协调,并且可以使用RabbitMQ进行协调。

注意:RabbitMQ团队监视RabbitMQ-users邮件列表,有时只回答有关StackOverflow的问题。

 类似资料:
  • 我刚刚开始使用RabbitMQ和AMQP。 我有一个消息队列 我有多个消费者,我想用相同的消息做不同的事情。 RabbitMQ的大部分文档似乎都集中在循环(round-robin)上,即单个消息由单个消费者使用,负载在每个消费者之间分散。这的确是我目击的行为。 例如:生产者只有一个队列,每2秒发送一次消息: 这里有一个消费者: 如果我启动消费者两次,我可以看到每个消费者都在以循环行为消费交替消息。

  • RabbitMQ的大部分文档似乎都集中在循环(round-robin)上,即单个消息由单个消费者使用。我有一个需求,其中希望从一个队列接收到多个订阅的消费者的相同消息。 下面是我的示例消费者代码。这里有两个侦听器在侦听同一个队列,但是只有一个使用者接收到消息。如何配置它,以便将相同的消息传递给两个消费者?(Consumer1和Consumer2)。任何帮助都将得到高度赞赏。

  • 我有以下场景:有3个rabbitmq队列,生产者根据消息的优先级将消息推送到这些队列。(myqueue_high,myqueue_medium,myqueue_low)我希望有一个可以按顺序或优先级从这些队列中提取的单一使用者,即只要消息在那里,它就一直从高队列中提取。它是从介质中拉出来的。如果medium也是空的,它从Low拉出。 我如何实现这一点?我需要编写自定义组件吗?

  • 我运行生产者,它生成N条消息,我在仪表板上看到它们。当我运行接收器时,它会接收来自队列的所有消息,并且队列为空。 我需要有多个生产者生成消息到同一个队列。多个客户从队列中接收消息。消息将被队列TTL删除。但是现在第一个接收者从队列中获取所有消息。我怎么能做到这一点?

  • 问题内容: 我一般只是开始使用RabbitMQ和AMQP。 我有一条消息队列 我有多个消费者,我想用 同一条消息 做不同的事情。 RabbitMQ的大多数文档似乎都集中在循环上,即单个消息由单个使用者使用,而负载则分散在每个使用者之间。我确实是这种行为。 例如:生产者只有一个队列,每2秒发送一次消息: 这是一个消费者: 如果我启动使用者两次,则 可以看到每个使用者都以循环方式使用替代消息。 例如,

  • 我们最近遇到了由RabbitMQ支持的应用程序的意外行为。RabbitMQ版本为3.6.12,我们使用的是.NET客户端5.0.1 应用程序订阅了两个队列,一个用于命令,另一个用于事件--我们还使用手动确认。我们的应用程序配置为有7个消费者。每个通道都有自己的通道(IModel),每个通道都有自己的EventingBasicConsumer,当EventingBasicConsumer.Recei