RabbitMQ之消費者Consumer

注意: RabbitMQ版本是3.6.1。測試

用的是Spring的RabbitTemplate。spa

1.消費者(Consumer)

    若是RabbitMQ隊列中堆積着數據,且沒有生產者往隊列中放入數據,那麼,每一個消費者線程從隊列中拿數據的速度差很少是1000/s多一點,這裏只是從隊列中取數據然後丟棄,不對數據進行邏輯處理。線程

    當只有一個Consumer時,delive的速度達到了1300/s,有時會跳到1600/s。隊列

    開啓倆個消費者線程,速度差很少是2000/s,it

    開啓三個消費者線程呢,速度是不是3000/s,實際來看,大約2700/s,有時會調到3000/s左右。且測試中沒有發現redelive的狀況,即沒有重發的狀況。數據

    當消費者線程數量t大於2或者3時,RabbitMQ的delive速度基本小於t乘以1000的積。co

上面的測試,發送的消息,消息報文體不是很大。消息

    在三個消費者的狀況下,若是RabbitMQ同時處理着Producer的produce、消費者的consme,RabbitMQ的delive速度會降低到500/s或者800/s。版本

2.生產者(Producer)

    一個Producer,進行produce時,RabbitMQ的publish的速度達到2000/s,有時是4000/s,有時7000/s,有時都會跳到10000/s。感受producer的速度快於consumer的速度。ab

    開啓4個Producer,4個Consumer時,RabbitMQ的publish速度達到5000/s左右,可是delive的速度卻只是達到2500/s左右,有時還比2500/s還少。

    當4個Producer的produce完成後,RabbitMQ的delive速度達到了4000/s左右,這時候才和其consumer線程個數對應(4個線程x1000個/s)。

 

    由上述能夠看出,並非Consumer數量越多,RabbitMQ上consume的速度同Consumer線程數量增加而呈線性增加,要分狀況,要看RabbitMQ是否同時處理Producer的生產處理和Consumer的消費處理。不與線程數量增加呈線性增加在RabbitMQ的delive速度上最明顯。

    上面只是我本身作實驗,得出的,建議本身作實驗驗證,個人數據不必定很是準確。

相關文章
相關標籤/搜索