您现在的位置是:首页 > 文章详情

RabbitMQ集群

日期:2017-03-28点击:488

一、前言

     线上的 RabbitMQ用的是单节点,前段时间由于机器内存不足,发生了OOM,业务受到了影响,故打算换成 RabbitMQ集群。RabbitMQ模式有三种,分别是:单一模式、普通模式、镜像模式,镜像模式才是RabbitMQ真正的HA方案,关于更详细的简绍,请移步到官网:http://www.rabbitmq.com/ha.html ,下面是关于RabbitMQ集群的部署过程:

二、环境

erlang版本:

erlang-19.0.4-1.el7.centos.x86_64

rabbitmq版本:

rabbitmq-server-3.6.6


服务器主机名:

ip-172-31-13-114  磁盘节点 ip-172-31-15-124 内存节点 ip-172-31-11-216 内存节点

三、安装

1、erlang安装

a、wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm b、rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc c、Add the following lines to some file in /etc/yum.repos.d/: [erlang-solutions] name=Centos $releasever - $basearch - Erlang Solutions baseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch gpgcheck=1 gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc enabled=1 d、yum install erlang esl-erlang

2、RabbitMQ 安装

a、 wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-generic-unix-3.6.6.tar.xz b、tar -xvf rabbitmq-server-generic-unix-3.6.6.tar.xz c、 mv rabbitmq_server-3.6.6 /data/rabbitmq d、cd /data/rabbitmq/;./sbin/rabbitmq-server -detached

四、配置

1、需要配置host,不然集群没用办法创建,我这里用的aws的ec2,用的默认主机名,这里就不修改了

2、拷贝.erlang.cookie,RabbitMQ集群依赖erlang集群才能工作,所以需要先构建erlang集群,.erlang.cookie文件在启动用户的家目录下,我这里是用work用户启动的RabbitMQ,拷贝一台服务器的/home/work/.erlang.cookie到其他机器并设置权限

chown work:work  /home/work/.erlang.cookie chmod 400 /home/work/.erlang.cookie

3、设置集群的模式:镜像

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

PS:

在任意一个节点操作即可,这里在ip-172-31-13-114上操作

4、加入集群(ip-172-31-15-124 、ip-172-31-11-216 )

rabbitmqctl stop_app rabbitmqctl join_cluster --ram rabbit@ip-172-31-13-114 rabbitmqctl start_app

PS:

--ram 指定内存节点类型,--disc指定磁盘节点类型

5、查看集群

rabbitmqctl cluster_status

6、启用管理和监控模块

rabbitmq-plugins enable rabbitmq_management

7、设置集群的名字

rabbitmqctl set_cluster_name my_mq

8、添加用户:

rabbitmqctl add_user spider spider

9、设置用户权限策略

rabbitmqctl set_user_tags spider administrator

10、vhost授权

rabbitmqctl set_permissions -p / spider '.*' '.*' '.*'

11、改变节点类型为磁盘节点

rabbitmqctl stop_app rabbitmqctl change_cluster_node_type disc rabbitmqctl start_app

12、将节点移出集群

将节点ip-172-31-11-216 移出集群前,先要stop_app,然后reset节点

[root@ip-172-31-11-216 ~]# rabbitmqctl stop_app Stopping node rabbit@ip-172-31-11-216 ... [root@ip-172-31-11-216 ~]# rabbitmqctl reset Resetting node rabbit@ip-172-31-11-216 ...


原文链接:https://blog.51cto.com/navyaijm/1911130
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章