Java Spring AMQP:比较多个使用者与每个使用者多个线程的性能

Java Spring AMQP:比较多个使用者与每个使用者多个线程的性能,java,performance,rabbitmq,message-queue,spring-amqp,Java,Performance,Rabbitmq,Message Queue,Spring Amqp,Spring AMQP:比较多个使用者与每个使用者多个线程的性能 我正在从Spring doc学习Spring AMQP。我不清楚提高消耗率的首选方法异步消息: 根据Spring文档(),配置SimpleMessageListenerContainer需要注意以下两点: concurrency=>为每个侦听器启动的并发使用者的数量。增加计数时,这将增加队列中接收的使用者数量 taskExecutor=>默认情况下,这确保为每个传入消息创建新线程 因此,我假设如果我们有无限线程来执行任务(第2点)

Spring AMQP:比较多个使用者与每个使用者多个线程的性能

我正在从Spring doc学习Spring AMQP。我不清楚提高消耗率的首选方法异步消息: 根据Spring文档(),配置SimpleMessageListenerContainer需要注意以下两点:

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

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


  • 因此,我假设如果我们有无限线程来执行任务(第2点),那么就没有必要增加使用者的数量。请求验证我的假设,并发送您注意到的任何绩效点

    否;每个传入消息都没有新线程;每个消费者有一个线程。如果使用线程池执行器,它需要有足够的线程来满足配置的使用者数量。默认的任务执行器通常足够了


    消费者线程调用您的侦听器;如果您的侦听器处理消息平均需要1秒,那么并发度为1时,最大吞吐量为每秒1;每秒并发2,2。等等等等

    没有;每个传入消息都没有新线程;每个消费者有一个线程。如果使用线程池执行器,它需要有足够的线程来满足配置的使用者数量。默认的任务执行器通常足够了

    消费者线程调用您的侦听器;如果您的侦听器处理消息平均需要1秒,那么并发度为1时,最大吞吐量为每秒1;每秒并发2,2。等等等等