rabbitMQ學習(一):集羣環境搭建


環境:
四臺centOS操做系統服務器192.168.0.73,192.168.0.74,192.168.0.75,192.168.0.76html

1 在每臺服務器上按照以下步驟安裝rabbitMQ
1.1 rabbitMQ是基於erlang語言開發的,所以先安裝erlang
執行命令:web

yum install erlang

1.2 安裝rabbitMQ
分別執行命令正則表達式

1 wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.0/rabbitmq-server-3.5.0-1.noarch.rpm
2 rpm -ivh rabbitmq-server-3.5.0-1.noarch.rpm

1.3 安裝完成後以服務的方式啓動rabbitMQ,並驗證相關進程是否運行正常vim

1 service rabbitmq-server start
2 ps -ef | grep rabbitmq

1.4 若是須要使用webUI管理,執行一下命令安裝插件;完成後重啓rabbitMQ服務器

1 rabbitmq-plugins enable rabbitmq_management
2 service rabbitmq-server restart

1.5 經過webUI登陸地址http://192.168.0.73:15672 默認用戶名和密碼都是guest
guest帳戶默認只容許經過localhost登陸,出現沒法登陸時經過修改配置文件便可解決cookie

vim /etc/rabbitmq/rabbitmq.config

寫入[{rabbit, [{loopback_users, []}]}]. 保存便可

2 集羣搭建
這裏所採用的四臺rabbitMQ服務器的hostname分別是queue-01,queue-02,queue-03,queue-04;hostname可經過app

1 cat /proc/sys/kernel/hostname

命令查看oop

2.1 中止全部節點的rabbitMQ服務spa

service rabbitmq-server stop

2.2 分別在四臺機器的/etc/hosts文件中加入以下內容,指定queue-01,queue-02,queue-03,queue-04的host。操作系統

192.168.0.73 queue-01
192.168.0.74 queue-02
192.168.0.75 queue-03
192.168.0.76 queue-04

2.3 以queue-01爲基礎,同步每一個節點的.erlang.cookie文件(以queue-02爲例),具體緣由請參考:http://www.cnblogs.com/flat_peach/archive/2013/04/07/3004008.html

1 queue-01#chmod 777 .erlang.cookie
2 queue-02#chmod 777 .erlang.cookie
3 queue-01#scp .erlang.cookie root@192.168.0.74:/var/lib/rabbitmq/
4 queue-02#chmod 400 .erlang.cookie
5 queue-01#chmod 400 .erlang.cookie

2.4 經過detached參數獨立運行全部節點,查看節點狀態

1 rabbitmq-server -detached
2 rabbitmqctl cluster_status

2.5 將queue-02做爲磁盤節點,queue-03,queue-04做爲內存節點與queue-01鏈接起來

 1 queue-02#rabbitmqctl stop_app
 2 queue-02#rabbitmqctl join_cluster rabbit@queue-01
 3 queue-02#rabbitmqctl start_app
 4 
 5 queue-03#rabbitmqctl stop_app
 6 queue-03#rabbitmqctl join_cluster --ram rabbit@queue-01
 7 queue-03#rabbitmqctl start_app
 8 
 9 queue-04#rabbitmqctl stop_app
10 queue-04#rabbitmqctl join_cluster --ram rabbit@queue-01
11 queue-04#rabbitmqctl start_app

經過以上步驟rabbitMQ集羣已經能正常工做了

若是但願使用鏡像功能,能夠經過rabbitMQ的策略來實現,在集羣中的任意節點配置策略會自動同步到其餘節點。

rabbitmqctl set_policy -p test ha-allqueue "^" '{"ha-mode":"all"}'

以上命令在名稱爲test的vhost上建立了一個名爲ha-allqueue的策略,策略模式爲all,即複製到全部節點,包含新增節點。 策略正則表達式爲 「^」 表示匹配全部隊列名稱,即全部隊列都會以鏡像的形式存在於其餘全部節點。

相關文章
相關標籤/搜索