提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言一、RabbitMq是什么?二、RabbitMq集群搭建步骤1.环境说明2.RabbitMQ 安装3.RabbitMQ 集群搭建4.RabbitMQ镜像队列

总结

前言

消息中间件-RabbitMq集群搭建及镜像队列 (高可用性、一台宕机自动切换另一台) ,镜像队列是基于普通的集群模式的

提示:以下是本篇文章正文内容,下面案例可供参考

一、RabbitMq是什么?

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。 RabbitMQ三大优势: 1.解耦: 若不使用MQ,当分布式系统中的一个系统给多个子系统提供数据时,当下游的子系统发生更改,Publisher也需要做出对应的更改。系统耦合性较高。 使用RabbitMQ以后,我们只需要让Publisher将消息发送到中间件即可,而并不需要关心谁去接收这条消息。 2.异步: 以系统多级调用为例: 下单成功(订单系统)–发送短信(短信系统)–xxx(下游子系统) 若发送短信和其下游的子系统并没有关联,那么我们可以在下单成功以后,将消息存储到RabbitMQ中,让短信系统和下游子系统异步执行。缩短系统总的运行时间。 3.削峰填谷: 若请求瞬间增多,来了5000个请求,而A系统无法一秒钟处理5000个请求,我们可以将这5000个请求存储到MQ中,然后每秒从MQ中取出1000个消息进行消费。

削峰填谷的原理: 其实就是利用Consumer的限流机制: 首先确认ack机制为手动签收。(在手动签收前sleep1s即可) 其次listener-container配置属性perfetch=1000也就是说一次消费1000条消息。

二、RabbitMq集群搭建步骤

1.环境说明

操作系统:Windows Server 2012 Erlang版本:21.3 RabbitMQ版本:3.7.14

三台服务器rabbitMq组成的集群 192.168.85.100 scck2svr04 192.168.85.101 scck2db04 192.168.85.102 scck2svr03

2.RabbitMQ 安装

先安装 otp_win64_21.3.exe 再安装 rabbitmq-server-3.7.14.exe 设置环境变量,具体操作步骤为: 我的电脑 -> 属性 -> 高级系统设置 -> 环境变量

安装成功之后,我们在第一台主服务器上搜索 .erlang.cookie 复制出一个 .erlang.cookie 文件到另外两台服务器上进行覆盖,注意,要覆盖另外两台服务器的两个目录下都要覆盖,覆盖完之后重启另外两台服务器,重启完成之后我们需要启动 RabbitMQ 并加入集群,首先我们启动第一台服务器,执行以下命令:

rabbitmq-service stop

rabbitmq-service start

rabbitmqctl start_app

第一台服务器的 RabbitMQ 服务器启动之后我们可以执行一下命令安装可视化操作界面:

rabbitmq-plugins enable rabbitmq_management

rabbitmq-plugins enable rabbitmq_mqtt(1883)

rabbitmq-plugins enable rabbitmq_web_mqtt(15675)

插件安装完成之后我们可以通过浏览器访问服务器的 15672 端口访问可视化页面:

3.RabbitMQ 集群搭建

第一台服务器已经装好了,那么接下来开始装第二台并加入集群,安装第二台与第一台执行同样的命令:

rabbitmq-service stop

rabbitmq-service start

rabbitmqctl start_app

rabbitmq-plugins enable rabbitmq_management

rabbitmq-plugins enable rabbitmq_mqtt

rabbitmq-plugins enable rabbitmq_web_mqtt

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@scck2svr04

rabbitmqctl start_app

第三台服务器的操作和第二台也是一样,执行完以下命令:

rabbitmq-service stop

rabbitmq-service start

rabbitmqctl start_app

rabbitmq-plugins enable rabbitmq_management

rabbitmq-plugins enable rabbitmq_mqtt

rabbitmq-plugins enable rabbitmq_web_mqtt

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@scck2svr04

rabbitmqctl start_app

执行完命令之后我们重新刷新可视化页面就发现集群中出现了3台服务器了:

4.RabbitMQ镜像队列

Windows RabbitMQ 镜像队列 (高可用性、一台宕机自动切换另一台) 镜像队列是通过RabbitMQ 的配置策略(policy)来实现的: 镜像队列提供了三种模式:

Ø all:全部的节点队列都做镜像;

Ø exactly:指定镜像队列的节点最高镜像数量;

Ø nodes:只为指定具体节点配置镜像队列;

镜像创建完成 如下图: 镜像创建完毕后 队列 如下图:

总结

记录点点滴滴

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: