我正計劃在我的Web應用程序中使用消息傳遞中間件。現在我正在測試不同的消息中間件軟件,如RabbitMQ,JMS,HornetQ等。 提供此軟件的示例正在運行,但未提供期望的結果。
所以,我想知道哪些是負責提高應該保持眼睛的性能的因素?
開發人員應該關注哪些方面來提高中間件消息傳遞軟件的性能?影響中間件消息傳遞軟件性能低下的因素
2
A
回答
1
我是HornetQ的項目主管,但我會嘗試給你一個通用的答案,可以應用於你選擇的任何消息系統。
我看到的一個常見問題是人們問爲什麼單個生產者/單個消費者不會給你預期的性能。
當你發送一條消息,並要求確認馬上,你需要等待:
- 來自客戶端的消息傳送到服務器
- 磁盤
- 服務器上所堅持的消息通過向客戶端發送回叫來確認收到該消息
同樣,當您收到消息時,您向服務器確認:
- 的ACK是從客戶端發送到服務器
- 的ACK是堅持
- 服務器返回一個回調說回調達到
如果您需要確認您的所有信息 - 發送和消息 - 你需要等待這些步驟,因爲你有一個硬件涉及持久化磁盤和在網絡上發送比特。
消息系統將嘗試擴大與許多生產者和許多消費者。也就是說,如果很多人都在製作,他們應該全部使用共享給所有消費者的服務器上可用的資源。
有辦法加快單個生產者或單次消費:
一種是通過使用事務。因此,您可以最大限度地減少在磁盤上執行的數據塊和同步,同時在服務器上持續存在並在網絡上往返。 (這在任何數據庫上都是一樣的)
另一個是通過使用回調而不是阻止在消費者。 (JMS 2提出了一個類似於HornetQ上的ConfirmationHandler的回調)。
另外:我知道大多數供應商將不得不與要求,並建議該特定產品對他們的文檔性能部分。你應該看看每個產品
相關問題
- 1. 影響goroutine性能的因素
- 2. 消除造成影響的因素
- 3. 影響NServiceBus消息處理速度的因素有哪些?
- 4. 高性能JMS消息傳遞
- 5. 生活時間(ttl)是否會影響或降低性能?
- 6. 傳遞失敗如何影響JMS消息訂購
- 7. MQTT代理位置是否影響消息傳遞速度?
- 8. 每條消息創建新的TCP連接的性能影響
- 9. MySQL事件調度的性能影響
- 10. 性能影響
- 11. 消息隊列性能降低
- 12. 性能的影響
- 13. 消息傳遞的插件框架
- 14. 文件大小如何影響性能?
- 15. 日誌消息是否會影響性能?
- 16. Actor模型中消息傳遞的性能
- 17. 用於指定Django信號中定性時間信息的性能影響?
- 18. 影響mongodb選舉的因素和條件
- 19. 如何初始化較低庫中的Firebase雲消息傳遞?
- 20. 互操作性的Windows消息傳遞?
- 21. 道德軟件安裝 - 影響其他軟件
- 22. LINQ性能影響
- 23. 兩個類之間的消息傳遞
- 24. 進程間傳遞的消息
- 25. msgpack:C++和java之間的消息傳遞
- 26. 線程間消息傳遞的實現
- 27. 文件夾中有多個文件會影響性能嗎?
- 28. grizzly.writeTimeout在文件下載中的影響
- 29. XMPP作爲軟件組件/服務器之間的消息傳遞解決方案?
- 30. 根據消息屬性臨時禁用JMS消息的傳遞
你能接受答案或討論你爲什麼沒有? 如果您不接受答案,請爲我們提供一些信息,以便我們能夠幫助您。 –