2014-02-14 36 views
1

春AMQP多線程多消費者的對比效果。我不是優選的方法明確增加消費率異步消息: 作爲每Spring文檔(http://docs.spring.io/spring-amqp/docs/1.2.1.RELEASE/reference/html/amqp.html#d4e329),以下兩點,注意到用於配置SimpleMessageListenerContainer一樣:春AMQP:VS每消費</p> <p>我的Spring文檔學習泉AMQP的階段是多線程多消費者的對比效果:每VS消費者

  1. 併發=>併發消費者的數目來啓動爲每個聽衆。在增加計數時,這會增加在隊列中接收的消費者的數量。

  2. 了taskExecutor =>這在默認情況下,確保爲每個傳入消息

所以創建新的線程,我想如果我們有任務執行(2點)無界線程那麼就沒有必要增加消費者的數量。請求驗證我的假設併發送您已記錄的任何性能點

回答

2

否;每個傳入消息都沒有新線程;它有一個消費者線程。如果您使用ThreadPool執行程序,則它需要有足夠的線程用於配置的使用者數量。默認的任務執行器通常就足夠了。

消費者線程調用您的偵聽器;如果您的偵聽器平均需要1秒來處理消息,那麼併發性爲1,則您的最大吞吐量爲每秒1;併發性爲2,每秒2。等等。