向新订户推送消息

时间:2019-09-24 20:39:06

标签: rabbitmq spring-rabbitmq

我正在使用spring-boot创建一个批量视频处理系统。在这里,用户将通过xlsx表格提供所有与视频相关的信息,我们将在后端处理视频。我正在使用Rabbitmq来排队请求。 假设用户上传了一个包含100行的工作表,那么Rabbitmq队列中将有100条消息。在后端,我们正在自动扩展订户(服务器)。因此,我们将仅从一个订户开始,根据负载(队列中的消息数),我们将扩展到15个订户。 但是我们的生产者非常快,它将所有消息分配给我们的第一个用户(在其他用户出现之前),而我们所有的新用户都没有从队列中获取任何消息。 如果在生产者开始推送消息之前所有订户都可用,那么它将把消息分配给所有服务器。

请提供一个解决方案,说明我们的新订阅者如何从较早产生的队列中提取消息。

1 个答案:

答案 0 :(得分:1)

您可能会受到侦听器容器prefetchCount属性的影响-最新版本(自2.0版开始)默认为250。

因此,第一个使用者启动时将收到多达250条消息。

听起来您应该将其减少到很小的数目,甚至一直减少到1,这样每个消费者只收到一条消息。