一、下载RabbitMQ
首先需要安装erlang
|
安装过程中会有提示,一路输入“y”即可。
完成后安装RabbitMQ:
先下载rpm:
|
下载完成后安装:
|
完成后启动服务:
|
可以查看服务状态:
|
启用rabbitmq的管理界面
|
二、搭建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的方式只拷贝内容即可。
|
(3)使用-detached参数运行各节点
|
然后可以通过rabbitmqctl cluster_status查看节点状态。注:要先拷贝cookie到另外两台机器上,保证三台机器上的cookie是一致的,然后再启动服务。
(4)组成集群
将node2、node3与node1组成集群,这里以node2为例:
|
将node3重复上述操作,也加入node1的集群。此时node2与node3也会自动建立连接,集群配置完毕。集群配置好后,可以在RabbitMQ任意节点上执行rabbitmqctl cluster_status来查看集群是否配置成功。
三、RabbitMQ镜像配置
在上述的集群中,如果某个节点挂掉,整个集群还是可以正常工作的,但是挂掉的那个节点的消息就清空了。这种情况在生产环境中是不可接受的,所以需要用到镜像功能,也就是主从配置。
在集群的任意一台上执行如下命令:
|
上面的命令在vhost名称为mobile创建了一个策略,策略名称为ha-allqueue,策略模式为all即复制到所有节点,包含新增节点,策略正则表达式为“^”表示匹配所有队列名称。
配置镜像队列后,其中1台节点失败,队列内容是不会丢失,如果整个集群重启,会恢复在disc中的持久化消息。