1. 程式人生 > >Windows下的RabbitMQ安裝:集群與鏡像

Windows下的RabbitMQ安裝:集群與鏡像

min windows 增加 原因 host alt 子節點 amp 寫法

RabbitMq本身支持集群,但其本身並不支持負載均衡。

Erlang的集群中各節點是經由過程一個magic cookie來實現的,cookie存放位置為:

C:\Users\用戶名\.erlang.cookie

C:\Windows\System32\config\systemprofile\.erlang.cookie

一、修改Host文件

測試使用兩臺windows server 2008 R2虛擬機,ip分別為192.168.174.128,192.168.174.129

首先找到兩臺的節點名稱,登陸後右上角有展示。

技術分享圖片

兩臺機器的host都增加

技術分享圖片

二、修改rabbitmq.config文件,增加集群節點。

(不是安裝目錄)

技術分享圖片

安裝目錄下的Readme.txt有指明config存放位置,默認沒有config文件,將rabbitmq.config.example復制一份重命名成rabbitmq.config

C:\Users\用戶名\AppData\Roaming\RabbitMQ\rabbitmq.config

config文件內容類似於Json的格式,找到cluster_nodes節點,去掉前邊兩個百分號,(百分號是註釋)修改內容為(去掉後邊的逗號):

{cluster_nodes,[‘[email protected]‘,‘[email protected]‘]}

註:捎帶寫一下修改Rabbit默認端口號。(公司機房固定某幾個端口可訪問,所以要改默認端口號)

找到tcp_listeners去掉前邊百分號改為{tcp_listeners, [8080]};(參照Json格式的寫法,如果只修改端口號則去掉後邊的逗號“,”;如果修改端口號後邊還有其他節點修改則要加上結尾的逗號,最後一個節點不加逗號)

下圖是刪除config註釋後的文件內容:

技術分享圖片

註:網上有的文章說要添加rabbitmq-env.conf文件,我用的這個版本不用添加這個文件(測試過了),其余版本不清楚。

三、增加集群節點

cd 到安裝目錄的sbin文件下執行命令,添加集群節點(開始菜單Rabbit有cmd命令行工具)

rabbitmqctl stop_app  //停止

rabbitmqctl reset// 此命令不執行也行,此命令是清除所有節點,類似於恢復出廠設置,清除報錯可以強制清除 rabbitmqctl force_reset;強制清除會將Rabbit恢復成初始狀態,Cluster名稱也會變,需要重新配置集群;

rabbitmqctl [email protected]  //添加集群節點;其中一臺服務器執行就可以,大概意思是將兩個Rabbit創建成集群

rabbitmqctl start_app  //啟動

至此RabbitMQ的集群就設置好了,登陸任意一個web管理端可以看到這個集群

註:如果要一個子節點退出集群要在子節點上執行

rabbitmqctl stop_app  //停止

rabbitmqctl reset

rabbitmqctl start_app  //啟動

在主節點上執行

rabbitmqctl forget_cluster_node [email protected]

註:RABBITMQ集群重啟

集群重啟時,最後一個掛掉的節點應該第一個重啟,如果因特殊原因(比如同時斷電),而不知道哪個節點最後一個掛掉。可用以下方法重啟:

先在一個節點上執行

rabbitmqctl force_boot

service rabbitmq-server start

在其他節點上執行

service rabbitmq-server start

查看cluster狀態是否正常(要在所有節點上查詢)。

rabbitmqctl cluster_status

Windows下的RabbitMQ安裝:集群與鏡像