rabbitmq - 向新订阅者推送消息
问题描述
我正在使用 spring-boot 创建一个批量视频处理系统。在这里,用户将通过 xlsx 表提供所有视频相关信息,我们将在后端处理视频。我正在使用 Rabbitmq 对请求进行排队。假设用户上传了一张有 100 行的表格,那么 Rabbitmq 队列中将有 100 条消息。在后端,我们正在自动扩展订阅者(服务器)。因此,我们将从仅一个订阅者开始,根据负载(队列中的消息数量),我们将扩展到 15 个订阅者。但是我们的生产者非常快,它将所有消息分配给我们的第一个订阅者(在其他订阅者出现之前),并且我们所有的新订阅者都没有从队列中获取任何消息。
请为我提供一个解决方案,说明我们的新订阅者如何从之前生成的队列中提取消息。
解决方案
您可能受到监听器容器prefetchCount
属性的影响 - 它默认为 250,最新版本(自 2.0 起)。
所以第一个消费者在启动时最多会收到 250 条消息。
听起来您应该将其减少到一个很小的数字,甚至一直减少到 1,因此每个消费者只有一条消息未处理。
推荐阅读
- ios - Swift - 在分页时添加加载单元
- nuxt.js - 是否有另一种方法可以将视频文件加载到视频元素中?
- python - 根据时间或索引差异将 DataFrame 拆分为 Chunks
- android - 使用离子电容器和npx cap有什么区别
- javascript - 如何在我的代码中修复“无法读取 null 的 addEventListener 的属性”?
- reactjs - 在heroku上部署反应应用程序,而不是从mlab加载数据库
- javascript - jquery和ajax删除构象框
- javascript - React Router 已声明但无法正常工作
- sql - 在 SQL Server 2012 的循环 INSERT 中增加变量
- django - 如何选择在 ModelForm 上显示的 ForeignKey 的字段?