rabbitMQ集羣部署以及集羣之間同步

MQ集羣部署

 

期待的部署架構web

其中,一個機房有兩臺機器部署MQ,並組成集羣,有一個機房的MQ集羣做爲中心集羣,其餘機房的MQ集羣將消息同步到中心MQ集羣中。架構

 

 

安裝erlang,略。。

安裝rabbitMQ,略。。

基本配置(NODENAME之類的,略)

配置本地集羣

配置hostsapp

同一機房集羣的兩臺機器都要配置host,要保證能夠經過hosts訪問到同一機房的集羣機器spa

好比同一機房的兩臺機插件

NODENAME=rabbit@111_100_222_217server

NODENAME=rabbit@111_100_222_218rabbitmq

111_100_222_217爲同ip對應的域名ip

須要在這兩臺機上,配置/etc/hosts,增長配置以下:ci

111.100.222.217  111_100_222_217部署

111.100.222.218  111_100_222_218

 

加入集羣

在兩臺機器上,先啓動MQ:

./rabbitmq-server&(同機房集羣裏的都要啓動,否則後面join不進去)

而後在其中每臺機器上,執行命令:

    ./rabbitmq-plugins enable rabbitmq_federation rabbitmq_federation_management rabbitmq_management

    ./rabbitmqctl stop_app

    ./rabbitmqctl reset

    ./rabbitmqctl join_cluster rabbit@111_100_222_218

    (218那臺機器是

    ./rabbitmqctl join_cluster rabbit@111_100_222_217

    目的是相互增長對方爲集羣)

    最後,重啓MQ

    ./rabbitmq-server&(若是存在則先kill掉 )

 

本地集羣配置完畢

 

本地MQ集羣和中心MQ集羣的同步

同步是單向的,都是單向同步到中心MQ

本地MQ集羣的同步配置

在每一個本地MQ集羣中,配置一下:(一個集羣只須要一臺機器配置,會自動擴散到集羣)

增長admin用戶並設置權限

./rabbitmqctl add_user admin yy-cloud

./rabbitmqctl set_permissions  admin ".*" ".*" ".*"

./rabbitmqctl set_user_tags admin administrator

設置策略

./rabbitmqctl  set_policy ha-federation  "^federation" '{"ha-mode":"exactly","ha-params":2}' 0

 

本地MQ集羣的同步配置完成了.

 

中心MQ集羣配置

設置策略

./rabbitmqctl  set_policy ha-federation  "^federation" '{"ha-mode":"exactly","ha-params":2}' 0

而後上中心MQ的web管理界面,在Admin下有個Federation Upstreams插件,爲每一個須要同步過來的MQ集羣增長upstreams. 須要配置的是URI參數和Expries參數,其餘參數一律默認就行

URI

amqp://admin:yy-cloud@111.100.222.217:5672 amqp://admin:yy-cloud@111.100.222.218:5672

Expires

3600000ms

記得每一個須要同步過來的MQ集羣都要配置一下。 最後,大功告成了!

相關文章
相關標籤/搜索