rabbitmq集群跨機器訪問引起內存占用高的問題


rabbitmq的隊列並不是分布在集群中,而且每個節點維護自己的

假設A B組成一個集群,rabbit域名或elb指向A,那么client會連接到A。但如果目標queue在B上,rabbit就會有一個內部的“轉發機”的機制來維護,相當於代理一樣。通過該機制,client仍能正常操作queue

但有一個問題就是,該機制可能會引發內存升高。譬如,B的內存只有100M,A可能會達到1.5G,而此時A上的消息並未有堆積,也不繁忙

rabbitmq主要內存開銷是內部database。上述問題的表現,就是binarys這個內存項目非常大

所以如果你的mq出現內存偏高,在確定無mq和erlang版本問題后,不妨從這個角度考慮一下:

將所有流量打到其隊列所在的那個實例,不要跨機


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM