我正在使用Spring AMQP与RabbitMQ协作。以下是我的配置:
<rabbit:connection-factory id="connectionFactory"
host="${queue.host}" port="${queue.port}" />
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory" />
<rabbit:admin connection-factory="connectionFactory" />
<rabbit:queue name="${queue.names}" durable="true"
exclusive="false" />
<rabbit:listener-container
connection-factory="connectionFactory" acknowledge="auto" error-handler="airbrakeHandler" prefetch="1000" >
<rabbit:listener ref="consumer" queue-names="${queue.names}" />
</rabbit:listener-container>
正如您所看到的,prefetchCount是1000。
我想知道消费者是否并行处理预取的消息; 也就是说,多个线程调用onMessage(Message message)方法。 还是说这些消息是按顺序依次处理的; 也就是说,一个线程迭代预取的消息,并依次调用每个消息的onMessage(Message message)方法。
需要注意的是,对于我来说,处理的顺序并不重要。只要它们一个接一个地被处理。
提前感谢您的帮助。