rabbitmq配置镜像模式
学习是spring cloud的时候用到了rabbitmq,在实际项目中也用到了,镜像模式是集群的基础上面配置的,就多了一个数据同步,rabbitmq存储消息用的是cookie,配置之前先同步cookie。
1、安装模式
镜像模式描述:镜像模式是多个rabbitmq实现主从备份,多个rabbitmq之间是数据同步的,使用的时候一直在访问一个主的raabitmq,从的实现备份。如果主的宕机可以自动切换到从的mq,不影响整合系统的使用。
2、部署步骤:
2.1、安装rabbitmq
首先去官网下载安装rabbitmq,官网安装guide地址http://www.rabbitmq.com/install-rpm.html,rabbitmq是基于erlang语言的,我们实现需要安装erlang,官网地址:https://github.com/rabbitmq/erlang-rpm。
新建完了以后, yum installl erlang –y安装erlang,安装完了可以运行erl –version查看安装的erlang版本,查看是否安装正确。
然后继续安装rabbitmq,使用rpm安装,实现随便进入某个目录,下载rpm文件 。
安装relang:
vim /etc/yum.repos.d/rabbitmq-erlang.repo
插入:
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/6
gpgcheck=1
gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
# yum -y install erlang
然后安装rabbitmq:
# wget https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.14-1.el6.noarch.rpm
然后安装rabbitmq
# rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
# yum install rabbitmq-server-3.6.14-1.el6.noarch.rpm -y(这里的名称换成上面下载的rpm名称)
如果报socat dependencies错误
# wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.repo
# yum makecache
# yum -y install socat
rabbitmq安装完运行rabbitmq-server –-version查看版本。Rabbitmq是基于主机名读取配置文件的,确保主机名在hosts文件中有说明例如我们主机名sjcj-v2-1,/etc/hosts文件中应该有 127.0.0.1 sjcj-v2-1。
启动rabbitmq
# service rabbitmq-server start
配置rabbitmq自启动
# chkconfig rabbitmq-server on
Rabbitmq有web端的监控界面,启用web插件
#rabbitmq-plugins enable rabbitmq_management #启用
关闭web插件
# rabbitmq-plugins disable rabbitmq_management
可以用默认账号guest,guest登陆http://localhost:15672,如果要远程登录,需要先创建帐户,rabbitmq本身出于安装考虑不允许远程使用guest账号,只能本地访问,但是我们是云服务器。新建管理员账号,例如:
# rabbitmqctl add_user waterlufei 123
# rabbitmqctl set_user_tags waterlufei administrator
# rabbitmqctl list_users (查看所有用户)
Web端访问远程IP,输入用户名waterlufei,密码123,进入web端管理界面
另一台服务器同样安装erlang和rabbitmq,启动rabbitmq监控界面。
2.2、配置镜像模式
现在两台服务器都安装完了但是之间没有相互联系,镜像模式是在主从模式的基础上面继续配置的,先配置主从模式,现在有两台IP,host文件都配置
192.168.243.145 sjcj-v2-1
192.168.243.148 waterlufei
同步cookie数据
rabbitmq的数据是用cookie存储的。
关闭148服务器的rabbitmq,直接kill掉rabbitmq的进程
登录145服务器
#cd /var/lib/rabbitmq –进入erlang.cookie所在目录,只有ls –al能看见此文件
#chmod 777 .erlang* –该文件默认为400权限,为方便传输,先修改权限,非必须操作
#scp .erlang.cookie rabbitmq@192.168.108.148:/var/lib/rabbitmq –将此文件传给另外两条主机
#chmod 400 .er* –恢复文件权限
在148上执行
#chown rabbitmq:rabbitmq .er* –修改文件所属用户和所属组
#chmod 400 .er* –修改文件权限
#service rabbitmq-server start
查询145的节点名称
# rabbitmqctl cluster_status
148 加入 145节点.
# rabbitmqctl stop_app –关掉rabbitmq2服务
# rabbitmqctl join_cluster rabbit@sjcj-v2-1
# rabbitmqctl start_app –启动rabbitmq2服务
查看集群状态rabbitmqctl cluster_status
在两个web端监控界面都可以看到
在一个rabbitmq的监控界面新建一个队列,可以发现另一个mq也有的相同的队列,数据和配置都会同步。
rabbitmq配置镜像模式的更多相关文章
- RabbitMQ 3.9.7 镜像模式集群的搭建
1. 概述 老话说的好:做人脚踏实地,一步一个脚印,便定能战胜一切困难,最终取得成功!!! 言归正传,之前我们聊了 RabbitMQ 单点服务的安装,今天我们来聊聊 RabbitMQ 3.9.7 镜像 ...
- RabbitMQ学习之集群镜像模式配置
1.增加负载均衡器 关于负载均衡器,商业的比如F5的BIG-IP,Radware的AppDirector,是硬件架构的产品,可以实现很高的处理能力.但这些产品昂贵的价格会让人止步,所以我们还有软件负载 ...
- RabbitMQ 3.9.7 镜像模式集群与Springboot 2.5.5 整合
1. 概述 老话说的好:做人要懂得变通,善于思考,有时稍微转个弯,也许问题就解决了. 言归正传,之前我们聊了 RabbitMQ 3.9.7 镜像模式集群的搭建,今天我们来聊聊 RabbitMQ 3.9 ...
- rabbitmq镜像模式初体验
rabbitmq-01: yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm wget ...
- RabbitMQ之消息模式(下)
目的: RabbitMQ之消息模式(上):https://www.cnblogs.com/huangting/p/11994539.html 消费端限流 消息的ACK与重回队列 TTL消息 死信队列 ...
- SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移
SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移 上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据 ...
- RabbitMQ六种队列模式-工作队列模式
前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列 [本文]RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主 ...
- RabbitMQ六种队列模式-路由模式
前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式 [本文]RabbitMQ六种队列模式-主 ...
- RabbitMQ六种队列模式-主题模式
前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主题模式 [ ...
随机推荐
- MXNet之ps-lite及parameter server原理
MXNet之ps-lite及parameter server原理 ps-lite框架是DMLC组自行实现的parameter server通信框架,是DMLC其他项目的核心,例如其深度学习框架MXNE ...
- Django 入门案例开发(上)
Django 入门案例开发(中) http://www.cnblogs.com/focusBI/p/7858267.html Django是一个重量级的web开发框架,它提供了很多内部已开发好的插件供 ...
- c++用指针交换数组
对于指针一直很迷,今天看了一下指针交换数组,知识量很少,希望能帮助到大家. 利用指针来交换数组主要是为了节省时间嘛,有两种交换方式 第一种是写一个函数把数组传过去然后用swap交换,即可 代码如下: ...
- Python 面向对象(五) 描述器
使用到了__get__,__set__,__delete__中的任何一种方法的类就是描述器 描述器的定义 一个类实现了__get__,__set__,__delete__中任意一个,这个类就是描述器. ...
- 自定义控件,上图下字的Button,图片任意指定大小
最近处在安卓培训期,把自己的所学写成博客和大家分享一下,今天学的是这个自定义控件,上图下字的Button安卓自带,但是苦于无法设置图片大小(可以在代码修改),今天自己做了一个,首先看一下效果图,比较实 ...
- win10下安装java jdk,tomcat
1.安装java jdk 去官网下载java jdk(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21 ...
- Android Weekly Notes Issue #285
November 26th, 2017 Android Weekly Issue #285 本周包含好几篇Kotlin的文章,如通过Property Delegate实现SharedPreferenc ...
- 实验:企业级分布式存储应用与实战-mogilefs实现
实验:企业级分布式存储应用与实战-mogilefs实现 (1)安装mogilefs 1.创建一个存放安装mogilefs所需的软件包的目录 cd /app/ mkdir mogilefs cd mog ...
- 用lua+redis实现一个简单的计数器功能 (二)
环境已经搭建完毕 传送门 计数方案 就目前来看nginx是最快的服务 我在设计方案时选择信任redis作为存储库,不做穿透处理,由于目前redis集群方案还不成熟,只在这里做了主备方案.想做集群方案的 ...
- log4net使用注意事项
1配置Log4net Log4net的配置文件有几种使用方式,这里将配置log4net的部分独立出来,即关于log4net的配置独立成文件log4net.config. 1)写入Mysql log4n ...