上文安裝完了rabbitmq, 直通車查看。
如果在實際使用過程中,使用單臺配置,萬一出現意外情況,將導致我們的服務終斷,因此需要搭建集羣的方式來最高限度的提高服務的可用性。
一、事先準備:
1.兩臺windows主機,當然也可以用虛擬機。
2.安裝erlang以及rabbitmq
二、安裝完成的單臺rabbitmq服務情況
1.兩臺windows主機rabbitmq相關內容:
a:192.168.0.88 rabbitmq節點名稱:rabbit@LAPTOP-UO88M5R6
b: 192.168.0.184 rabbitmq節點名稱:rabbit@USER-20160306SN
節點名稱如何查看?
在rabbitmq安裝目錄 sbin 下執行 rabbitmqctl status,出現如下界面:紅色框內的爲當前主機rabbitmq的節點名稱。
2.配置文件
a).集羣配置文件(兩臺主機都需要配置),在路徑C:\Users\Administrator\AppData\Roaming\RabbitMQ (AppData默認隱藏,需要設置顯示隱藏文件)中,創建rabbitmq.config文件,內容爲:[{rabbit,[{cluster_nodes, ['rabbit@LAPTOP-UO88M5R6', 'rabbit@USER-20160306SN']}]}]. (包括最後的 .)。
b).hosts文件設置,在路徑C:\Windows\System32\drivers\etc 中修改hosts文件。
b.1>192.168.0.88:
192.168.0.88 rabbit@LAPTOP-UO88M5R6
192.168.0.184 rabbit@USER-20160306SN
b.2>192.168.0.184:
192.168.0.184 rabbit@USER-20160306SN
192.168.0.88 rabbit@LAPTOP-UO88M5R6
c).配置環境變量文件,在C:\Users\Administrator\AppData\Roaming\RabbitMQ 路徑中,創建rabbitmq-env.conf
c.1>192.168.0.88中文件內容爲:
NODENAME=rabbit@LAPTOP-UO88M5R6
NODE_IP_ADDRESS=192.168.0.88
NODE_PORT=5672
RABBITMQ_MNESIA_BASE=C:\Users\jony\AppData\Roaming\RabbitMQ\db
RABBITMQ_LOG_BASE=C:\Users\jony\AppData\Roaming\RabbitMQ\log
c.2>192.168.0.184中文件內容爲:
NODENAME=rabbit@USER-20160306SN
NODE_IP_ADDRESS=192.168.0.184
NODE_PORT=5672
RABBITMQ_MNESIA_BASE=C:\Users\Administrator\AppData\Roaming\RabbitMQ\db
RABBITMQ_LOG_BASE=C:\Users\Administrator\AppData\Roaming\RabbitMQ\log
3..erlang.cookie文件統一(此文件用戶集羣之間通信祕鑰,必須一致)
將192.168.0.88中C:\Users\jony中的.erlang.cookie 的文件替換掉192.168.0.184 中 C:\Users\Administrator
和C:\Windows\System32\config\systemprofile
目錄中的
.erlang.cookie
4.重啓服務
a).192.168.0.184
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
b).192.168.0.88
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctljoin_clusterrabbit@USER-20160306SN
rabbitmqctl start_app
通過以上命令集羣基本就配置好了。
訪問 rabbitmq管理後臺,出現如下界面則表示成功:
需要注意的是,搭建集羣建議最少設置一個磁盤節點,防止機器意外關機等、丟失數據。
rabbitmq集羣有兩種節點 磁盤節點和內存節點。字面上瞭解,磁盤節點的數據存儲在磁盤,內存節點的數據存儲的內存中。因此存儲速度方面內存節點有優勢,數據安全方面磁盤節點有優勢。
rabbitmq啓動後默認是磁盤節點,如果要使用內存節點那麼在 搭建集羣的時候,在上方重啓服務中的 rabbitmqctljoin_cluster rabbit@USER-20160306SN
命令修改爲 rabbitmqctljoin_cluster --ram rabbit@USER-20160306SN,這樣配置之後
192.168.0.88的節點就爲內存節點了。
5.鏡像配置
此配置的作用,爲了同步消息,如給A節點發送一條消息,則自動同步到B節點。配置如下: