RabbitMQ集群配置

2021-09-24 18:11:33 字數 1776 閱讀 3275

前面配置了rabbitmq在本地的部署,現在來嘗試集群配置

集群的配置比較簡單,但是有乙個要求就是必須在同一網段內

假設有兩台機器,rabbit0和rabbit1做集群

首先將2臺機器的.erlang.cookie統一,任選一台為標準就可以

sudo vim /var/lib/rabbitmq/.erlang.cookie

修改hosts檔案

sudo vim /etc/hosts

加入以下字段

172.16.18.159

rabbit0

172.16.18.83 rabbit1

同時自己的機器的主機名務必要給成和你的這個是一樣的,不然機器重啟後,不是這個主機名,加入到集群會出現問題的. 

可以通過修改vim /etc/sysconfig/network中的hostname選項來修改,同時hostname rabbit0 也是可以臨時修改的.

在rabbit0上,執行如下命令

sudo

sudo

rabbitmqctl reset

sudo rabbitmqctl join_cluster --ram rabbit@rabbit1

如果新增成功的話,在每台機器上檢視集群狀態

sudo rabbitmqctl cluster_status

成功的話兩邊應該是相同的內容,類似於

cluster status of node rabbit@rabbit0 ...

[,]},

, ]

這樣配置的結果是,rabbit0作為記憶體節點,rabbit1作為磁碟節點

rabbitmq集群中必須至少存在一台磁碟節點

不想要記憶體節點的話,只需要將--ram引數去掉即可

存在多節點的情況,推薦在主節點中,執行

sudo

sudo

rabbitmqctl reset

在其餘的節點執行

sudo

sudo

rabbitmqctl reset

sudo

rabbitmqctl join_cluster --ram rabbit@rabbitmain

這樣做的結果是主節點為磁碟節點,其餘節點為記憶體節點

集群同步配置

乙個集群只需要一台機器配置,會自動擴散到集群

在集群任意一台web管理頁面的overview資訊中均可以看到所有節點的情況

在admin中的policies可以新增映象佇列規則

例如name隨便,pattern填入"^ha" 表示匹配所有ha開頭的佇列

definition填入ha-mode,後面填入all

儲存在queues裡可以看到效果,節點名後面會有乙個+1

同效果配置可以用命令來實現

sudo rabbitmqctl set_policy ha-all "

^ha\."'

'

rabbitmq的集群節點包括記憶體節點、磁碟節點。顧名思義記憶體節點就是將所有資料放在記憶體,磁碟節點將資料放在磁碟。不過,如果在投遞訊息時,開啟了訊息的持久化,那麼即使是記憶體節點,資料還是安全的放在磁碟。

良好的設計架構可以如下:在乙個集群裡,有3臺以上機器,其中1臺使用磁碟模式,其它使用記憶體模式。其它幾台為記憶體模式的節點,無疑速度更快,因此客戶端(consumer、producer)連線訪問它們。而磁碟模式的節點,由於磁碟io相對較慢,因此僅作資料備份使用。

rabbitmq集群配置

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

rabbitmq 集群配置

參考 環境 centos7 這裡使用兩台,生產環境建議使用三颱 ip主機名 安裝軟降 192.168.137.126 node01 erlang rabbitmq,jdk 192.168.137.125 node02 erlang rabbitmq,jdk 修改主機名並寫入hosts檔案 vim e...

RabbitMQ 集群配置參考

rabbitmq version rabbitmq 3.7.11 erlang version erlang otp 21 system windows 10 homebasic a ip 192.168.6.49 node rabbit laptop 7bvtruru b ip 192.168.6...