標籤:rabbitmq叢集配置
1、實驗環境
rabbitmq-node1.com192.168.1.112rabbitmq-node2.com192.168.1.113rabbitmq-node3.com192.168.1.128
2、配置前檢查同步時間
#ntpdate pool.ntp.org
3、注意一定要修改hosts
#cat /etc/hosts192.168.1.112 rabbitmq-node1.com rabbitmq-node1192.168.1.113 rabbitmq-node2.com rabbitmq-node2192.168.1.128 rabbitmq-node3.com rabbitmq-node3
4、安裝erlang
#yum -y install erlang
5、安裝rabbitqmq
#wget http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.6/rabbitmq-server-2.8.6-1.noarch.rpm#yum -y install rabbitmq-server-2.8.6-1.noarch.rpm [[email protected] ~]# /etc/init.d/rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/56/C7/wKiom1SNk0rzDHwLAAMCEmLBc80539.jpg" title="r2.jpg" alt="wKiom1SNk0rzDHwLAAMCEmLBc80539.jpg" />
# rabbitmqctl status //查看狀態
6、安裝外掛程式管理介面
#mkdir -m 777 /etc/rabbitmq/ (如果目錄已經存在直接執行 # chmod 777 /etc/rabbitmq/)#rabbitmq-plugins enable rabbitmq_management重啟rabbitmq-server#rabbitmqctl stop#/etc/init.d/rabbitmq-server start
查看管理連接埠有沒有啟動:
# netstat -tnlp|grep 55672
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/56/C5/wKioL1SNk6HAqqi-AAKaRTzIU9g550.jpg" title="r3.jpg" alt="wKioL1SNk6HAqqi-AAKaRTzIU9g550.jpg" />
瀏覽器開啟http://IP:55672 帳號密碼都是guest
注意:rabbitmq從3.3.0開始禁止使用guest/guest許可權通過除localhost外的訪問。
如果想使用guest/guest通過遠程機器訪問,需要在rabbitmq設定檔中(/etc/rabbitmq/rabbitmq.config)中設定loopback_users為[]。
/etc/rabbitmq/rabbitmq.config檔案完整內容如下(注意後面的半形句號):
[{rabbit, [{loopback_users, []}]}].
7、rabbitmq叢集配置
(1)設定每個節點Cookie
Rabbitmq的叢集是依賴於erlang的叢集來工作的,所以必須先構建起erlang的叢集環境。Erlang的叢集中各節點是通過一個magic cookie來實現的,這個cookie存放在 /var/lib/rabbitmq/.erlang.cookie 中,檔案是400的許可權。所以必須保證各節點cookie保持一致,否則節點之間就無法通訊
# cat /var/lib/rabbitmq/.erlang.cookie EJARCZORCOTEQWFGPWXR
(2)停止所有節點RabbitMQ服務,然後使用detached參數獨立運行,這步很關鍵,尤其增加節點停止節點後再次啟動遇到無法啟動都可以參照這個順序
[[email protected] ~]#rabbitmq-server -detached[[email protected] ~]#rabbitmq-server -detached[[email protected] ~]#rabbitmq-server -detached
(3)關於節點類型(ram |disk)
ram節點的狀態儲存在記憶體中,disk節點儲存在磁碟中被加入的節點為disk,如本例中[email protected]2為ram節點,[email protected]1,[email protected]為ram節點,可以通過rabbitmqctl cluster命令改變加入的叢集以及節點類型該命令後可以加多個節點名稱,指定的節點就會變成disk節點
[[email protected] ~]#rabbitmqctl cluster_status[[email protected] ~]#rabbitmq stop_app[[email protected] ~]#rabbitmqctl reset[[email protected] ~]#rabbitmqctl cluster[[email protected] ~]#rabbitmqctl start_app 指定為ram[[email protected] ~]#rabbitmq stop_app[[email protected] ~]#rabbitmqctl reset[[email protected] ~]#rabbitmqctl cluster [email protected][[email protected] ~]#rabbitmqctl start_app 指定為disc[[email protected] ~]#rabbitmq stop_app[[email protected] ~]#rabbitmqctl reset[[email protected] ~]#rabbitmqctl cluster [email protected] [email protected][[email protected] ~]#rabbitmqctl start_app
(4)自動設定叢集,預設檔案是沒有的,如果需要必須手動建立
[[email protected] ~]# cat /etc/rabbitmq/rabbitmq.conf [ ... {rabbit, [ ... {cluster_nodes, [‘[email protected]‘,‘[email protected]‘, ‘[email protected]‘]}, ... ]}, ... ]. [[email protected] ~]# cat /etc/rabbitmq/rabbitmq-env.conf RABBITMQ_MNESIA_BASE=/var/lib/rabbitmq///需要使用的MNESIA資料庫的路徑RABBITMQ_LOG_BASE=/var/log/rabbitmq///log的路徑RABBITMQ_PLUGINS_DIR=/usr/lib/rabbitmq/lib/rabbitmq_server-2.8.6/plugins//外掛程式的路徑
(5)啟動後就自動加入叢集了
[[email protected] ~]#rabbitmq-server -detached[[email protected] ~]# rabbitmqctl cluster_statusCluster status of node ‘[email protected]‘ ...[{nodes,[{disc,[‘[email protected]‘,‘[email protected]‘]}, {ram,[‘[email protected]‘]}]}, {running_nodes,[‘[email protected]‘,‘[email protected]‘, ‘[email protected]‘]}]...done.
(6)在瀏覽器中可以看到所有節點的資訊,如果其他節點資訊沒有顯示啟用web管理就好
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/56/C5/wKioL1SNlEjS6BUiAAMw5AoTxCo107.jpg" title="r5.jpg" alt="wKioL1SNlEjS6BUiAAMw5AoTxCo107.jpg" />
本文出自 “毛竹之勢” 部落格,請務必保留此出處http://peaceweb.blog.51cto.com/3226037/1589875
CentOS+rabbitMQ叢集配置