我正在使用6臺服務器構建集羣,它們都是磁盤節點。我使用rabbitmq爲我們的網站收集日誌文件。現在在繁忙時間,發佈速率大約爲每秒30k條消息。有2個主要消費者(hdfs和elasticsearch),每個消費者都需要處理所有消息,因此交付速率達到每秒60k左右。有關性能的分佈式集羣問題
在我的方案中,一臺服務器可以保持10k的傳輸速率,並使用6個節點來負載平衡壓力。我的解決方案是我在每個節點上創建了2個隊列。每條消息都帶有一個隨機路由密鑰(類似message.0,message.1等),以便將壓力分發給每個節點。
讓我困惑的是:
所有消息發送到一個節點。我應該使用HA代理來平衡這種發佈壓力嗎?
- Durable Queues和Transient Queues之間是否有任何性能差異?
- 內存節點和磁盤節點之間是否有任何性能差異?我所知道的是內存節點和磁盤節點之間的區別僅在於元數據(如隊列配置)。
- 如何提高發布和交付代碼的性能?我研究,我知道的幾種方法:
- 禁用確認機制(?在發佈代碼)
- 使HIPE(我已經做了,它幫助了很多)
- 例如,輸入是1w mps(消息每秒),有兩個消費者消耗所有消息。然後輸出是2w mps。如果我的服務器可以處理1w mps,我需要兩臺服務器來處理2w-mps的壓力。現在一個新的消費者也需要消費所有的消息。結果,輸出命中3w mps,所以我需要另一個更多的服務器。爲了得出結論,還有一個消費者可以使用所有消息,還有一臺服務器?
有你有看http://www.rabbitmq.com/blog/2012/04/17/rabbitmq-performance-measurements-part-1/和HTTP :在問題3 //www.rabbitmq.com/blog/2012/04/25/rabbitmq-performance-measurements-part-2/ – robthewolf 2013-03-16 15:31:17
您的意思是進口還是你的意思是提高 – robthewolf 2013-03-16 15:31:37
哦,是的,我想輸入「?提高' – 2013-03-18 02:51:51