rabbitmq镜像集群搭建与升级

rabbitmq集群搭建与升级

一、rabbitmq集群搭建
1.参考文档
http://www.rabbitmq.com/ha.html
2.环境
test-rabbitmq001 192.168.8.210
test-rabbitmq002 192.168.8.211
test-rabbitmq003 192.168.8.212
3.软件版本
erlang:R14B04
rabbitmq:3.5.6
4.首先安装erlang
yum install erlang
(yum源 仓库为本地自己搭建)
5.安装rabbitmq
可以去官网下载对应版本rpm包安装
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.6/rabbitmq-server-3.5.6-1.noarch.rpm
rpm -ivh rabbitmq-server-3.5.6-1.noarch.rpm
由于本地仓库内已有包因此,这里使用yum安装
yum install rabbitmq-server
6.启用插件rabbitmq management
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
7.管理用户
其他笔记中已有交代
8.统一cookie文件
将test-rabbitmq001中的/var/lib/rabbitmq/.erlang.cookie 文件复制到另外两台机器中并替换原来的文件(三台服务器必须具有相同的cookie,如果不相同的话,无法搭建集群)
9.组建集群
在test-rabbitmq001中查看状态

rabbitmqctl cluster_status

[{nodes,[{disc,[‘rabbit@test-rabbitmq001’]}]},
{running_nodes,[‘rabbit@test-rabbitmq001’]},
{cluster_name,<<“rabbit@test-rabbitmq001.local”>>},
{partitions,[]}]
在test-rabbitmq002,test-rabbitmq003中执行以下命令
#rabbitmqctl stop_app
#rabbitmqctl join_cluster --ram rabbit@test-rabbitmq001
#rabbitmqctl start_app
(注:–ram意味内存节点,可以不加改为disk节点)
查看集群状态

rabbitmqctl cluster_status

Cluster status of node ‘rabbit@test-rabbitmq003’ …
[{nodes,[{disc,[‘rabbit@test-rabbitmq001’,‘rabbit@test-rabbitmq002’,
‘rabbit@test-rabbitmq003’]}]},
{running_nodes,[‘rabbit@test-rabbitmq001’,‘rabbit@test-rabbitmq002’,
‘rabbit@test-rabbitmq003’]},
{cluster_name,<<“rabbit@test-rabbitmq003”>>},
{partitions,[]}]
10.设置镜像队列
在rabbit@test-rabbitmq001中设置规则
#rabbitmqctl set_policy ha-all “^ha.” ‘{“ha-mode”:“all”}’ //意思表示以ha.开头的queue都会复制到各个节点 ["^"匹配所有]
而我设置的是所有队列都匹配
#rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:“all”}’
至此镜像队列搭建完成

升级

注意事项:
1.大版本升级是无法滚动升级
2.镜像集群升级会导致非持久化的队列消失,持久化队列存在;但所有队列消息都会丢失。
3.集群升级时,要求最后关闭的节点是disk节点,并且升级完成后最先启动的节点是最后关闭的节点
大致步骤
以下步骤为恢复方法(该部分未测试):
Step1:顺序停止集群中所有节点服务,确保最后一个中止服务的节点为Disc节点而非RAM节点;
Step2:每个节点原有mnesia数据库改名,最后一个节点的mnesia数据库备份改名;
Step3:升级每个节点的rabbitmq-server版本;
Step4:中止epmd服务(Erlang port mapper daemon),如果/var/lib/rabbitmq/mnesia目录存在,删除掉,然后拷贝备份的mnesia数据库目录过来;
Step5:启动主节点的rabbitmq-server服务,并添加用户及用户组权限;
然后对集群中所有从节点,依次按上一部分的Step5,启动服务,添加用户/组,加入主节点集群即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值