0
我測試我的RabbitMQ 3個節點集羣,這些天, 我使用java工具來測試,爲什麼我的RabbitMQ集羣連接和渠道保持流動狀態
[[email protected] bin ]$ ./runjava com.rabbitmq.perf.PerfTest -x1 -y1 -e testex -Hmqp://username:[email protected]/test' -t topic -k sample.info -s 1500 -i 20
id: test-154506-639, starting consumer #0
id: test-154506-639, starting consumer #0, channel #0
id: test-154506-639, starting producer #0
id: test-154506-639, starting producer #0, channel #0
id: test-154506-639, time: 20.000s, sent: 8913 msg/s, received: 8804 msg/s, min/avg/max latency: 6317/251907/727492 microseconds
id: test-154506-639, time: 40.004s, sent: 8993 msg/s, received: 8991 msg/s, min/avg/max latency: 157294/256691/387926 microseconds
id: test-154506-639, time: 60.011s, sent: 9029 msg/s, received: 9019 msg/s, min/avg/max latency: 146744/255631/384696 microseconds
id: test-154506-639, time: 80.017s, sent: 8946 msg/s, received: 8972 msg/s, min/avg/max latency: 164969/259147/723908 microseconds
id: test-154506-639, time: 100.019s, sent: 8971 msg/s, received: 8949 msg/s, min/avg/max latency: 164012/258115/353767 microseconds
我發現我的RabbitMQ連接和信道狀態保持處於流動狀態。但是爲什麼呢?有沒有辦法提高性能?
我認爲流動狀態讓發佈者快速發送消息,以防服務器無法排隊消息。
但我用來測試的發送速率似乎並不高,爲什麼它們仍處於流動狀態?
任何人都可以提供幫助嗎?提前致謝。
謝謝加布裏埃萊, – zero
謝謝加布裏埃萊。我閱讀文檔鏈接,但我有一些不清楚的地方。 假設rabbitmq設置credit_flow_default_credit defalut默認情況下,InitialCredit設置爲200,MoreCreditAfter設置爲50,那麼它會出現一個帶有2個隊列(q1和q2)的通道,這樣通道會啓動200 * 2信用?是對的嗎?如果每個隊列發送了50條消息,它將返回50個信用額度,不是嗎? – zero
我們假設q1非常慢,不能再向該頻道返回任何信用,但q2足夠快以快速返回信用。這樣q2將能夠授予該頻道的功勞,並且該頻道不會被阻止? 因此,我可以這麼說,如果一個連接有多個通道(或者一個通道有多個隊列),就不太可能阻塞連接或通道(因爲如果一個通道或隊列速度更快,它可以授予信貸上游)。 – zero