步驟一:安裝RabbitMQ;
步驟二:加入RabbitMQ節點到叢集;
#docker pull rabbitmq:management
docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:management
docker run -d --hostname rabbit2 --name myrabbit2 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:management
docker run -d --hostname rabbit3 --name myrabbit3 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:management
主要參數:
設定節點1:
#docker exec -it myrabbit1 bash
#rabbitmqctl stop_app
#rabbitmqctl reset
#rabbitmqctl start_app
#exit
設定節點2,加入到叢集:
#docker exec -it myrabbit2 bash
#rabbitmqctl stop_app
#rabbitmqctl reset
#rabbitmqctl join_cluster --ram rabbit@rabbitmq_host1
#rabbitmqctl start_app
#exit
設定節點3,加入到叢集:
#docker exec -it myrabbit3 bash
#rabbitmqctl stop_app
#rabbitmqctl reset
#rabbitmqctl join_cluster --ram rabbit@rabbitmq_host1
#rabbitmqctl start_app
#exit
主要參數:
–ram 表示設定爲記憶體節點,忽略次參數預設爲磁碟節點。該設定啓動了3個節點,1個磁碟節點和2個記憶體節點。
設定好之後,使用 http://ip:15672 進行存取,預設賬號密碼:guest/guest
以看到,已經有多個節點了。
1、策略policy概念
使用RabbitMQ映象功能,需要基於RabbitMQ策略來實現,策略policy是用來控制和修改羣集範圍的某個vhost佇列行爲和Exchange行爲。策略policy就是要設定哪些Exchange或者queue的數據需要複製、同步,以及如何複製同步。
爲了使佇列成爲映象佇列,需要建立一個策略來匹配佇列,設定策略有兩個鍵「ha-mode和 ha-params(可選)」。ha-params根據ha-mode設定不同的值,下表說明這些key的選項。
2、新增策略
登錄rabbitmq管理頁面 ——> guest——> Policies ——> Add / update a policy
name:隨便取,策略名稱
Pattern:^ 匹配符,只有一個^代表匹配所有
Definition:ha-mode=all 爲匹配型別,分爲3種模式:all(表示所有的queue)
或者使用命令:
#rabbitmqctl set_policy ha-all 「^」 ‘{「ha-mode」:「all」}’
3、檢視效果
此策略會同步所在同一VHost中的交換器和佇列數據。設定好policy之後,使用 http://ip:15672 再次進行存取,可以看到佇列映象同步。