RabbitMQ集群部署

释放双眼,带上耳机,听听看~!

一、搭建单节点的MQ

先到官网下载rabbitMQ安装包,由于我的系统是CentOS6.5 故下载CentOS6.x版本的

RabbitMQ集群部署


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
1yum install epel-release //安装epel依赖
2
3wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm  //下载erlang安装包
4rpm -Uvh erlang-solutions-1.0-1.noarch.rpm    //解压
5
6vim /etc/yum.repos.d/epel.repo  //将minor注释base打开
7
8
9sudo yum install erlang      //安装
10
11yum install rabbitmq-server-3.7.15-1.el6.noarch.rpm    //安装从官网下载好的安装包
12
13
14whereis rabbitmq    //查询安装目录
15cd /usr/lib/rabbitmq/bin
16rabbitmq-plugins enable rabbitmq_management    //启用rabbitMq插件
17rabbitmq-server start    //启动
18
19vi /etc/rabbitmq/rabbitmq-env.conf //报错,未设置节点名称,设置节点名称:在文件里面添加这一行:NODENAME=rabbit@mq2
20
21rabbitmq-server start    //启动
22
23
24或在主目录下执行 service rabbitmq-server start
25
26
27
28/etc/init.d/iptables stop //关闭防火墙  
29rabbitmqctl  add_user  admin  123456    //添加用户
30rabbitmqctl set_user_tags admin administrator    //设置用户群组
31rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"    //设置权限
32

二、集群-普通模式

1.使两台虚拟机的.erlang.cookie文件中cookie值一致,且权限为owner只读。

将其中一个虚拟机的/var/lib/rabbitmq/.erlang.cookie文件拷贝至另一台机器上,并执行以下命令


1
2
1[root@mq3 ~]# chmod 600 /var/lib/rabbitmq/.erlang.cookie
2

2.更改/etc/hosts文件,如下(两台虚拟机的hosts文件要一样)


1
2
3
4
5
1127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
2::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
3192.168.2.54 mq3
4192.168.2.53 mq2
5

3.停止当前机器中rabbitmq的服务


1
2
1[root@mq3 ~]# rabbitmqctl stop_app
2

4.将mq2加入到集群中


1
2
1[root@mq3 ~]# rabbitmqctl join_cluster rabbit@mq2
2

5.开启当前机器的rabbitmq服务


1
2
1[root@mq3 ~]# rabbitmqctl start_app
2

三、集群-镜像模式

上述配置的RabbitMQ默认集群模式,但并不包管队列的高可用性,尽管互换机、绑定这些可以复制到集群里的任何一个节点,然则队列内容不会复制。固然该模式解决一项目组节点压力,但队列节点宕机直接导致该队列无法应用,只能守候重启,所以要想在队列节点宕机或故障也能正常应用,就要复制队列内容到集群里的每个节点,须要创建镜像队列。

镜像队列是基于普通的集群模式的,所以你还是得先配置普通集群,然后才能设置镜像队列,我们就以上面的集群接着做。

我是通过上面开启的网页的管理端来设置的镜像队列,也可以通过命令,这里先说其中的网页设置方式:

1、点击admin菜单–>右侧的Policies选项–>左侧最下下边的Add/update a policy。

2、按照图中的内容根据自己的需求填写。

3、点击Add policy添加策略。

此时你就会来你的两台rabbitmq服务器的网页管理端amind菜单下看见刚才创建的队列了,下面我们来添加一个queues队列来看看效果,这里只是测试结果,其它的先不填写。

设置镜像队列策略

在任意一个节点上执行:


1
2
1root@mq3# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
2

将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。

我们去mq3上查看策略。


1
2
3
4
5
6
1[root@mq3 ~]# rabbitmqctl list_policies
2Listing policies for vhost "/" ...
3vhost  name    pattern apply-to    definition  priority
4/  ha-all  ^   all {"ha-mode":"all"}   0
5
6

此时镜像集群就已经完成了,可以在任意节点上创建队列,看看其他两个节点是否会同步。

给TA打赏
共{{data.count}}人
人已打赏
安全网络

CDN安全市场到2022年价值76.3亿美元

2018-2-1 18:02:50

安全运维

redis基本操作

2021-12-11 11:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索