rabbitmq配置鏡像模式

學習是spring cloud的時候用到了rabbitmq,在實際項目中也用到了,鏡像模式是集羣的基礎上面配置的,就多了一個數據同步,rabbitmq存儲消息用的是cookie,配置以前先同步cookie。html

一、安裝模式
鏡像模式描述:鏡像模式是多個rabbitmq實現主從備份,多個rabbitmq之間是數據同步的,使用的時候一直在訪問一個主的raabitmq,從的實現備份。若是主的宕機能夠自動切換到從的mq,不影響整合系統的使用。
二、部署步驟:
2.一、安裝rabbitmq
首先去官網下載安裝rabbitmq,官網安裝guide地址http://www.rabbitmq.com/install-rpm.html,rabbitmq是基於erlang語言的,咱們實現須要安裝erlang,官網地址:https://github.com/rabbitmq/erlang-rpm。
新建完了之後, yum installl erlang –y安裝erlang,安裝完了能夠運行erl –version查看安裝的erlang版本,查看是否安裝正確。

而後繼續安裝rabbitmq,使用rpm安裝,實現隨便進入某個目錄,下載rpm文件 。
安裝relang:
vim /etc/yum.repos.d/rabbitmq-erlang.repo
插入:
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/6
gpgcheck=1
gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
# yum -y install erlang
而後安裝rabbitmq:
# wget https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.14-1.el6.noarch.rpm
而後安裝rabbitmq
# rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
# yum install rabbitmq-server-3.6.14-1.el6.noarch.rpm -y(這裏的名稱換成上面下載的rpm名稱)git

若是報socat dependencies錯誤
# wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.repo
# yum makecache
# yum -y install socatgithub

rabbitmq安裝完運行rabbitmq-server –-version查看版本。Rabbitmq是基於主機名讀取配置文件的,確保主機名在hosts文件中有說明例如咱們主機名sjcj-v2-1,/etc/hosts文件中應該有 127.0.0.1 sjcj-v2-1。
啓動rabbitmq
# service rabbitmq-server start
配置rabbitmq自啓動
# chkconfig rabbitmq-server on
Rabbitmq有web端的監控界面,啓用web插件
#rabbitmq-plugins enable rabbitmq_management #啓用
關閉web插件
# rabbitmq-plugins disable rabbitmq_management
能夠用默認帳號guest,guest登錄http://localhost:15672,若是要遠程登陸,須要先建立賬戶,rabbitmq自己出於安裝考慮不容許遠程使用guest帳號,只能本地訪問,可是咱們是雲服務器。新建管理員帳號,例如:
# rabbitmqctl add_user waterlufei 123
# rabbitmqctl set_user_tags waterlufei administrator
# rabbitmqctl list_users (查看全部用戶)

Web端訪問遠程IP,輸入用戶名waterlufei,密碼123,進入web端管理界面

另外一臺服務器一樣安裝erlang和rabbitmq,啓動rabbitmq監控界面。
2.二、配置鏡像模式
如今兩臺服務器都安裝完了可是之間沒有相互聯繫,鏡像模式是在主從模式的基礎上面繼續配置的,先配置主從模式,如今有兩臺IP,host文件都配置
192.168.243.145 sjcj-v2-1
192.168.243.148 waterlufei
同步cookie數據
rabbitmq的數據是用cookie存儲的。
關閉148服務器的rabbitmq,直接kill掉rabbitmq的進程web

登陸145服務器
#cd /var/lib/rabbitmq –進入erlang.cookie所在目錄,只有ls –al能看見此文件
#chmod 777 .erlang* –該文件默認爲400權限,爲方便傳輸,先修改權限,非必須操做
#scp .erlang.cookie rabbitmq@192.168.108.148:/var/lib/rabbitmq –將此文件傳給另外兩條主機
#chmod 400 .er* –恢復文件權限
在148上執行
#chown rabbitmq:rabbitmq .er* –修改文件所屬用戶和所屬組
#chmod 400 .er* –修改文件權限
#service rabbitmq-server startspring

查詢145的節點名稱
# rabbitmqctl cluster_statusvim

148 加入 145節點.
# rabbitmqctl stop_app –關掉rabbitmq2服務
# rabbitmqctl join_cluster rabbit@sjcj-v2-1
# rabbitmqctl start_app –啓動rabbitmq2服務
查看集羣狀態rabbitmqctl cluster_status

在兩個web端監控界面均可以看到

在一個rabbitmq的監控界面新建一個隊列,能夠發現另外一個mq也有的相同的隊列,數據和配置都會同步。服務器

相關文章
相關標籤/搜索