JavaEE:RabbitMQ集群搭建

说明:

普通集群:消息只存在一个节点上,当客户端访问时,集群内部会从这一个节点上取。客户端要和每个节点建立连接,否则会产生性能问题。
镜像集群:在普通集群基础上,将节点做成镜像队列,消息会主动在镜像节点间同步,比较耗性能,只适用于对可靠性要求高的场合。

系统:centos7

一、搭建普通集群:

1.创建2个虚拟机(或真机器),系统为centos7,分别命名为RabbitMQ01和RabbitMQ02:

(1)RabbitMQ01节点配置IP和主机名:

IP:
192.168.233.130

修改主机名为RabbitMQ01:

[root@loclhost ~]# vi /etc/hostname

内容如下,保存退出:

RabbitMQ01

配置hosts,映射IP与主机名:

[root@RabbitMQ01 ~]# vi /etc/hosts

在最后追加如下内容,保存退出:

192.168.233.130 RabbitMQ01
192.168.233.131 RabbitMQ02

(2)RabbitMQ02节点配置IP和主机名:

IP:
192.168.233.131

修改主机名为RabbitMQ02:

[root@loclhost ~]#vi /etc/hostname

内容如下,保存退出:

RabbitMQ01

配置hosts,映射IP与主机名:

[root@RabbitMQ02 ~]# vi /etc/hosts

在最后追加如下内容,保存退出:

192.168.233.130 RabbitMQ01
192.168.233.131 RabbitMQ02

2.在2个虚拟机(或真机器)Centos7上安装RabbitMQ服务器:

(1)安装,参考以下地址"一、RabbitMQ服务器安装/启动-2.Centos7下安装RabbitMQ服务器":

https://blog.csdn.net/a526001650a/article/details/107341303

(2)浏览器访问web管理页:

http://192.168.233.130:15672/
http://192.168.233.131:15672/

3.将2个主机的erlang.cookie配置成一致(分布式token文件,集群内靠相同的erlang.cookie通信):

(1)将RabbitMQ01主机的erlang.cookie文件拷贝并替换掉RabbitMQ02主机的erlang.cookie:

[root@RabbitMQ01 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@RabbitMQ02:/var/lib/rabbitmq

在以下提示中按需输入:

Are you sure you want to continue connecting (yes/no)? yes
root@rabbitmq02's password: root

4.将两个主机上的RabbitMQ服务停止,并重新启动:

(1)停止:

[root@RabbitMQ01 ~]# rabbitmqctl stop
[root@RabbitMQ02 ~]# rabbitmqctl stop

查看是否停了:

[root@RabbitMQ01 ~]# ps -ef|grep rabbitmq
[root@RabbitMQ02 ~]# ps -ef|grep rabbitmq

杀进程:

[root@RabbitMQ01 ~]# kill -9 进程号
[root@RabbitMQ02 ~]# kill -9 进程号

(2)启动:

[root@RabbitMQ01 ~]# rabbitmq-server -detached
[root@RabbitMQ02 ~]# rabbitmq-server -detached

5.将RabbitMQ02节点加入到RabbitMQ01集群中(2个节点建立集群关联):

[root@RabbitMQ02 ~]# rabbitmqctl stop_app
[root@RabbitMQ02 ~]# rabbitmqctl join_cluster rabbit@RabbitMQ01
[root@RabbitMQ02 ~]# rabbitmqctl start_app

6.查看集群状态,如图所示:

[root@RabbitMQ01 ~]# rabbitmqctl cluster_status
[root@RabbitMQ02 ~]# rabbitmqctl cluster_status

二、配置镜像集群:

1.说明:

rabbitmqctl set_policy:用来设置策略
ha-all:设置策略为所有节点可用,会同步所有节点
ha-two:设置策略为所有2个节点可用,会同步2个节点
"^":设置正则表达式匹配队列名,^表示匹配所有队列名称
{"ha-mode":"all"}':设为高可用模式,匹配所有消息同步

2.配置镜像集群(可以在任意节点执行,此处在RabbitMQ01执行):

[root@RabbitMQ01 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

3.查看镜像集群效果,管理页 -> Queues -> 新增一个queue,Features中为ha-all,如图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值