RabbitMQ集群搭建

一、下载RabbitMQ

首先需要安装erlang

yum install erlang

安装过程中会有提示,一路输入“y”即可。

完成后安装RabbitMQ:

先下载rpm:

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm

下载完成后安装:

yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm

完成后启动服务:

service rabbitmq-server start

可以查看服务状态:

service rabbitmq-server status

启用rabbitmq的管理界面

rabbitmq-plugins enable rabbitmq_management

二、搭建RabbitMQ集群

(1)分别在3台机器上配置/etc/hosts,如下:

192.168.3.30  node1

192.168.3.31  node2

192.168.3.32  node3

(2)设置erlang cookie,保证相同的erlang cookie

找到erlang cookie文件的位置,官方在介绍集群的文档中提到过.erlang.cookie一般会存在这两个地址:第一个是$home/.erlang.cookie;第二个地方就是/var/lib/rabbitmq/.erlang.cookie。如果使用解压缩的方式安装部署的rabbitmq,那么这个文件会在${home}目录下,也就是$home/.erlang.cookie。如果使用rpm等安装方式进行安装的,那么这个文件会在/var/lib/rabbitmq目录下。

这里将node1的.erlang.cookie文件复制到node2,node3,注意这个文件的权限400(默认即是400),因此采用scp的方式只拷贝内容即可。

[root@iZuf6a1s9ws9726xatwn45Z rabbitmq]# scp /var/lib/rabbitmq/.erlang.cookie root@第二台机器ip:/var/lib/rabbitmq

[root@iZuf6a1s9ws9726xatwn45Z rabbitmq]# scp /var/lib/rabbitmq/.erlang.cookie root@第三台机器ip:/var/lib/rabbitmq

(3)使用-detached参数运行各节点

rabbitmqctl stop

rabbitmq-server -detached

然后可以通过rabbitmqctl cluster_status查看节点状态。注:要先拷贝cookie到另外两台机器上,保证三台机器上的cookie是一致的,然后再启动服务。

(4)组成集群

将node2、node3与node1组成集群,这里以node2为例:

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@node1    ######这里集群的名字一定不要写错了

rabbitmqctl start_app

将node3重复上述操作,也加入node1的集群。此时node2与node3也会自动建立连接,集群配置完毕。集群配置好后,可以在RabbitMQ任意节点上执行rabbitmqctl cluster_status来查看集群是否配置成功。

 

三、RabbitMQ镜像配置

在上述的集群中,如果某个节点挂掉,整个集群还是可以正常工作的,但是挂掉的那个节点的消息就清空了。这种情况在生产环境中是不可接受的,所以需要用到镜像功能,也就是主从配置。

在集群的任意一台上执行如下命令:

$ sudo rabbitmqctl set_policy -p mobile ha-allqueue "^" '{"ha-mode":"all"}'

上面的命令在vhost名称为mobile创建了一个策略,策略名称为ha-allqueue,策略模式为all即复制到所有节点,包含新增节点,策略正则表达式为“^”表示匹配所有队列名称。

配置镜像队列后,其中1台节点失败,队列内容是不会丢失,如果整个集群重启,会恢复在disc中的持久化消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值