rabbitmq配置镜像模式

mac2022-06-30  28

学习是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-erlangbaseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/6gpgcheck=1gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.ascrepo_gpgcheck=0enabled=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 onRabbitmq有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-1192.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也有的相同的队列,数据和配置都会同步。

转载于:https://www.cnblogs.com/waterlufei/p/8136145.html

最新回复(0)