Windows下的RabbitMQ安裝:集群與鏡像
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安裝:集群與鏡像