Spring AMQP:比较每个消费者的多个消费者与多个线程的性能

时间:2014-02-14 12:40:09

标签: java performance rabbitmq message-queue spring-amqp

Spring AMQP:比较每个消费者的多个消费者与多个线程的性能

我正处于从Spring doc学习Spring AMQP的阶段。我不清楚增加消费率异步消息的首选方法: 根据Spring文档(http://docs.spring.io/spring-amqp/docs/1.2.1.RELEASE/reference/html/amqp.html#d4e329),注意到以下两点用于配置SimpleMessageListenerContainer:

  1. concurrency =>为每个侦听器启动的并发使用者数。在增加计数时,这将增加在队列中接收的消费者数量。

  2. taskExecutor =>默认情况下,这可确保为每个传入消息创建新线程

  3. 所以,我假设如果我们有任务执行的无界线程(第2点),那么就没有必要增加消费者的数量。请求验证我的假设并发送您注意到的任何绩效点

1 个答案:

答案 0 :(得分:2)

没有;每个传入消息都没有新线程;每个消费者都有一个帖子。如果您使用ThreadPool执行程序,则需要为配置数量的使用者提供足够的线程。默认任务执行程序通常就足够了。

消费者线程调用您的侦听器;如果你的监听器平均需要1秒来处理一条消息,那么并发性为1,你的最大吞吐量是每秒1;并发性为每秒2次。等等。