java - 同步队列的所有消费者以一次只处理一条消息
问题描述
我正在运行一个 Spring Cloud Stream 应用程序,使用来自 RabbitMq 的消息。我想实现一种行为,其中具有三个消费者实例的给定队列仅向其中任何一个传递一条消息,并等待下一条传递,直到当前被确认(所有消费者之间的某种同步)。
我认为这可以使用启用全局选项的https://www.rabbitmq.com/consumer-prefetch.html来完成,但我找不到使用 Spring Cloud Stream 实现此目的的方法。任何帮助将不胜感激。
解决方案
Spring 为每个消费者使用单独的通道,因此全局通道预取不会产生任何影响。
请记住,即使它被支持,它也只有在消费者都在同一个实例中时才会起作用。
推荐阅读
- powershell - 具有递归和排除多个子目录的删除项目
- android - 最小日期最大日期在 xamarin android 中不起作用
- vba - 我想知道如何运行 vba 脚本来查找和替换仅在一张工作表中而不是整个工作组中的多个单词?
- compression - innodb 压缩是否与全文搜索兼容,内存是否也被压缩?
- php - 修改 PHP 脚本以将待处理的帖子发布到时事通讯 (wordpress)
- r - 基于 RShiny 中的 renderui 用户输入重新计算渲染图
- javascript - 存储和更新存储的对象
- drop-down-menu - bootstrap 4.1 navbar-collapse nav-second-level 和 nav-third-level
- json - 需要读取嵌套的 Json 并使用 scala 中的数据框将其解析为两列(Id,newId)
- google-analytics - 谷歌分析,会话计数