spring-rabbit相关内容

如何根据标准限制并发消息消耗

场景(我已经简化了): 许多最终用户可以从前端Web应用程序(生产者)开始作业(繁重的作业,例如渲染大型PDF)。 作业被发送到单个持久RabbitMQ队列。 许多工作应用程序(使用者)处理这些作业并将结果写回数据存储中。 此相当标准的模式运行良好。 问题:如果用户在同一分钟内启动了10个作业,而在同一时间只有10个工作应用程序处于运行状态,则该最终用户实际上会占用自己的所有 ..
发布时间:2022-07-24 17:59:29 其他开发

如何监听动态创建的队列?

我有一个rabbitListener,它可以持续地异步监听队列“user-Messages”的用户消息。除非队列中加载了批量消息,否则一切正常。当消息批量发布到队列时,同一用户的消息会先处理,其他用户的消息则会等待处理。 我无法使用优先级队列,因为所有用户的优先级都相等。因此,我希望创建新队列并在运行时监听它们。一旦消息被使用,所有队列都将是短暂的。(该队列将被删除) 浏览时,我发现可 ..
发布时间:2022-06-24 16:07:39 Java开发

spring rabbit amqp @RabbitListener 配置最小和最大消费者数量

我正在使用spring amqp rabbit @RabbitListener 注解来自:神器 spring-rabbit-1.7.1.RELEASE我想知道是否有办法为每个队列配置消费者数量?我一直在挖掘文档,但一无所获,有没有办法在相关容器中为每个队列配置消费者数量?提前致谢. 解决方案 通过文档中显示的容器工厂bean. @Bean公共 SimpleRabbitListenerCo ..
发布时间:2022-01-11 17:50:51 Java开发

rabbitmq 和 spring-rabbitmq 中的 DLX - 拒绝消息的一些注意事项

我确实阅读了此参考:https://www.rabbitmq.com/dlx.html,但它并没有解决我的疑问,即: 如果接受消息没有问题 - spring-rabbitmq 发送确认并且一切都很好,DLX 不知道确认的消息. 问题是如果拒绝回答,即抛出 MessageConverterException 怎么办?此消息已删除或移至 DLX? 如果有其他异常怎么办?例如 Except ..
发布时间:2022-01-11 17:35:31 Java开发

慢速网络中的大型 RabbitMQ 消息

我正在使用带有 Spring AMQP 的 RabbitMQ 大型消息(>100MB,102400KB) 小带宽 (低心跳间隔(10 秒) 单一经纪人 消费消息需要>= 200*8秒,超过了我的心跳间隔.来自 https://stackoverflow.com/a/42363685/418439 如果节点间的消息传递时间(60秒?)>节点间的心跳时间,会导致集群断线,消息松散 ..
发布时间:2022-01-11 17:32:11 其他开发

通过 RabbitMQ 发送文件

通过 RabbitMQ 发送大小约为 1Mb 的文件是个好主意吗?我想以 json 格式发送消息,其中包含与文件对应的二进制字段. 以及如何使用 spring-amqp 正确地做到这一点?只需通过下一个类发布对象? 类消息{字符串字段1;字节[] 文件字段1;字节[] 文件字段2;} 解决方案 我建议不仅要阅读那些发布的链接,还要自己做一些实验.我要关心的是服务级别和客户端级别的性能. ..
发布时间:2022-01-11 17:31:39 其他开发

Spring RabbitTemplate - 如何在发送时自动创建队列

我将 RabbitMQ 与 Spring 的 RabbitTemplate 一起使用. 当使用模板发送方法向队列发送消息时,我希望队列不存在时自动创建/声明. 这非常重要,因为根据我们的业务逻辑,队列名称是在运行时生成的,我无法提前声明它们. 之前我们使用 JmsTemplate 并且任何发送或接收的调用都会自动创建队列. 解决方案 是的,你可以使用 RabbitAdmi ..
发布时间:2022-01-11 17:30:57 Java开发

rabbitmq中的预取计数与无确认有什么区别

我需要知道 rabbitmq 中的 prefetch count 和 no ack 有什么区别? 还有以下语句有什么区别:- 如果我将预取计数设置为 10,是否会创建 10 个消费者线程?或者—— 如果我注册 10 个 cosumer,它会创建 10 个线程吗? 以上哪个更高效 解决方案 预取计数:消费者应该从队列中读取多少条消息并保留在内部,而不是一次选择一条消息 ..
发布时间:2022-01-11 17:29:44 其他开发

检查rabbitmq中是否存在指定名称的Exchange

我有一个场景,其中有一个应用程序正在生成不同类型的有趣事件(不是命令).生产者应用程序不关心事件由谁以及如何处理. 我正在实现一个消费者,他将监听一些已发布的事件并适当地处理它们.消费者应用程序想要检查发布者应用程序交换是否存在.那么,问题是如何利用spring提供的rabbit/AMQP库来检查是否存在特定名称的交换? 我想,这可以通过尝试将队列绑定到不存在的交换器来间接处理,从而导 ..
发布时间:2022-01-11 17:23:08 其他开发

如何优雅地停止使用@RabbitListener 消费消息

有没有办法优雅地停止 ListenerContainer 及其关联的 Consumers. 我正在努力实现的目标. 停止使用消息. 优雅地停止 ListenerContainer. 等待长时间运行的消费者,完成后确认. 我可以使用 consumer.stop() 停止 ListenerContainers,但活动的长时间运行的消费者不会成功完成,处理的消息也不会acked 并 ..
发布时间:2022-01-11 17:14:12 Java开发

动态添加新的队列、绑定和交换作为 bean

我目前正在开发一个 rabbit-amqp 实施项目,并使用 spring-rabbit 以编程方式设置我的所有队列、绑定和交换.(spring-rabbit-1.3.4 和 spring-framework 版本 3.2.0) 在我看来,javaconfiguration 类或基于 xml 的配置中的声明都是静态的.我知道如何为队列设置更动态的值(例如名称),交换或像这样绑定: @Con ..
发布时间:2022-01-11 17:12:27 其他开发

通过Rabbit DLQ延迟重新排队

我正在尝试按照 这里. 我尝试尽可能接近地从文档中复制配置示例,但创建的死信队列本身并未绑定回 DLX.我不清楚为什么不. 虽然我看到了另一个潜在的解决方案,但我没有依赖默认行为,而是尝试显式设置 dlqDeadLetterExchange 和 dlqDeadLetterRoutingKey 属性,以查看是否可以使其工作.我的配置是这样的: 兔子:绑定:输入:消费者:autoBind ..
发布时间:2021-08-20 20:11:36 其他开发

如何使用 RMQ 和 Spring Cloud 流创建基于分区的生产者?

我正在尝试找到 Spring Cloud 流的示例,它在其中为 RMQ 创建基于分区的生产者.我想看看它将如何为这些队列创建绑定,因为 RMQ 本身不支持主题的分区,但它会创建与分区数相等的队列数(我读过这个,我可能错了).首先,我想了解如何在基于分区的生产者的 RMQ 上使用 Spring Cloud 流创建生产者. 解决方案 @SpringBootApplication@EnableB ..
发布时间:2021-08-20 20:10:24 Java开发

Spring Reactive Stream - 意外关闭

我们正在将 Spring Cloud Reactive Streams 与 RabbitMQ 结合使用. Spring Reactive Stream 似乎在将消息从队列中拉出时立即确认该消息.因此,在消息处理期间发生的任何错误未处理异常都需要在应用程序中进行处理(这与非反应流不同,非反应流可以抛出未处理的异常并拒绝消息,从而将其发送到死信队列). 当消息正在传输时,我们应该如何处理应 ..

使用 Spring App 中的期货处理并行异步操作

我有一个包含 +1M 条目的数据库,我正在以块的形式查询数据库(假设 chunkSize = 1000). 迭代这个 1000 块,我想为每个实体向rabbitMQ 发布一条消息,将这个块的所有期货收集到一个数组/列表中. 等待这个futures数组,直到所有futures都完成/失败,然后把这个1000的数组过滤成两个新的list(successList,failureList),然 ..