问题描述
从低层次看,预取计数和批处理大小(批处理)有什么区别?或者它们之间有什么关系?
还有,除了批处理之外,还有没有办法在侦听器中获取所有“预取”消息?
解决方法
Prefetch只是经纪人允许消费者处理的未确认消息的数量。
使用SimpleMessageListenerContainer
,将预提取的消息保存在队列中,并且一次一次传递给侦听器(默认情况下)。
从2.2版开始,可以将容器配置为将消息的“批”传递给侦听器,它结合使用batchSize和receiveTimeout来组合批处理。
这与预取完全无关。
但是,批处理大小应小于或等于预取,因为否则,将永远无法达到批处理大小,并且批处理总是很短,并由`receiveTimeout'触发。