rabbitMQ集群部署以及集群之间同步

MQ集群部署
期待的部署架构

其中,一个机房有两台机器部署MQ,并组成集群,有一个机房的MQ集群作为中心集群,其他机房的MQ集群将消息同步到中心MQ集群中。

安装erlang,略。。
安装rabbitMQ,略。。
基本配置(NODENAME之类的,略)
配置本地集群
配置hosts
同一机房集群的两台机器都要配置host,要保证可以通过hosts访问到同一机房的集群机器
比如同一机房的两台机

NODENAME=rabbit@111_100_222_217
NODENAME=rabbit@111_100_222_218
111_100_222_217为同ip对应的域名

需要在这两台机上,配置/etc/hosts,增加配置如下:
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参数,其他参数一概默认就行

[img]http://dl2.iteye.com/upload/attachment/0117/5193/cfade0f9-d38d-3b4e-ab07-be002534ac50.png[/img]
记得每个需要同步过来的MQ集群都要配置一下。 最后,大功告成了!

你可能感兴趣的:(rabbitmq学习)