rabbitmq集群跨機器訪問引起記憶體占用高的問題

2022-09-13 14:36:06 字數 427 閱讀 9753

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版本問題後,不妨從這個角度考慮一下:

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

rabbitmq集群配置

rabbitmq是乙個輕量級的訊息服務系統,切記它只是乙個類似信件郵遞員的功能,而不是快遞,不用把它當成redis在用。一 rabbitmq軟體安裝 1.erlang安裝 安裝erlang,載入官方提供的yum源,然後直接安裝。最新版本的rabbitmq直接依賴erlang,安裝esl erlang...

Rabbitmq 建立集群

更改host 兩台主機rabbit1 192.168.1.112,rabbit2 192.168.1.113 host配置如下 rabbit1 192.168.1.112 rabbit2 192.168.1.113 同步erlang.cookie 將rabbit1 c users erlang.co...

安裝rabbitmq集群

一.安裝 erlang rabbitmq 在10.0.0.45 10.0.0.57 10.0.0.58三個節點上安裝,然後開啟 rabbitmq 監控外掛程式 以下在root使用者操作 1.etc hosts增加 10.0.0.45 node1 10.0.0.57 node2 10.0.0.58 n...