首页 > 解决方案 > Spring AMQP 中的预取与批处理

问题描述

在低层次上,预取计数和批量大小(批处理)之间有什么区别,或者它们之间有什么关系?

以不同的方式构建它,一个值是否会对另一个值产生影响?

另外,除了批处理之外,有没有办法在侦听器中获取所有“预取”消息?

标签: spring-amqpspring-rabbit

解决方案


预取只是代理允许消费者未确认的未确认消息的数量。

使用SimpleMessageListenerContainer,预取的消息被保存在一个队列中,并一次一个地传递给侦听器(默认情况下)。

从 2.2 版开始,可以将容器配置为将“批次”消息传递给侦听器,它使用 batchSize 和 receiveTimeout 的组合来组装批次。

这与预取完全无关。

但是,batch-size 应该小于或等于预取,否则,batch 大小将永远无法达到,batch 总是很短,并由`receiveTimeout 触发。


推荐阅读