RabbitMQ集群
一、前言
线上的 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 ...
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
WeX5客观题软件开发与list组件应用等典型疑问
界面实现 无论是WEX还是BEX,开发各种客观题模块都是最常见的。但是,最近在利用业余时间想开发一个学生使用的小型客观题系统时遇到了麻烦。首先,在论坛上搜索到了大量相似问题。问题或者过于简单,或者过于特殊。且看一下本人提供的客观题界面,我相信这种设计思路还是与大多数应用需求相一致的。 这是单选题界面和多选题界面。 注意:我每一个小题旁边放置的按钮是便于学生自我测试时看参考答案时使用的。这个小功能设计比较简单(我使用的是PopOver组件,其内的span对应的bind-text令其等于 $model.singleData.val("fAnswer")类似的内容即可实现即时地查看对应小题的答案)。 问题 在开发类似于上面的系统时注意到不少像我这样的初学者存在与我十分类似的困惑。 (补注:这样人可能以前有JAVA,C#,VB等UI开发经验,但遗憾的是,这些软件开发思路与X5中的H5开发思想发生了重大变化--不知大伙与我意见一致否?) 归纳起来,问题有: 1,list组件的onClick 事件中 如何得到 list某一行的id? 地址:http://doc.wex5.com/comps-lis...
- 下一篇
VBS脚本判断及获取两个文件之间的不同内容
由于公司目前的数据比较乱,近期做系统优化,A系统中有1000个用户,B系统有1300个用户,但是A系统中的用户是正确的,B系统中的数据不正确,也有可能是用户数据没有及时做删除,所以想通过vbs脚本进行判断及删除,所以我们需要将A系统中的用户导出来,然后以A系统的数据为准,然后同时将B系统的用户信息也导出来,通过vbs比较,将不同的数据写入到新生成的文件中做处理,具体见下: 以下是一个例子: A系统中导出的文件: B系统导出的文件: 执行的效果应该是在新生成的文件中,将B系统文件中的user06、user07写入到新的文件中就正常了; 因为:A系统的数据是准确的,所以通过比对后,将差异数据写入到新的数据文件中; DimTxt1,Txt2,Txt3 msgbox"请选择源文件-01" Txt1=CreateObject("WScript.Shell").Exec("mshtavbscript:""<inputtype=fileid=f><script>f.click();newActiveXObject('Scripting.FileSystemObject').G...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 2048小游戏-低调大师作品
- CentOS8编译安装MySQL8.0.19
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Linux系统CentOS6、CentOS7手动修改IP地址