RabbitMq简介

RabbitMq产生背景:
原来不同的网络上的计算机相互通信,需要实现对方的通信协议。比如下图:

在这里插入图片描述

2提供了一个接口,协议是Http,1想要调用2,必须实现Http协议。
引入Mq之后,1只需要建立和Mq的通信协议,不需要关心2的通信协议是什么。

RabbitMq的工作模型:
在这里插入图片描述
这里涉及三大类:
生产者、消费者、中转站(RabbitMq),为什么生产者的消息不直接给消费者呢?这里就要说道RabbitMq的优点,概括将:
异步、解耦、削峰。
异步:

在这里插入图片描述
左图是同步,请求发出之后,必须等到结果出来返回才接着做其他事;
右图是异步,请求发出,不必等结果出来,就去做其他事。

解耦:
举例:订单退货系统
在这里插入图片描述
一个订单发生了退货,需要通知库存增加,支付系统退款,通知系统通知客户。
一般情况下,会在订单类中调用库存、支付、通知三个类,有了Mq,实现方式如下:
在这里插入图片描述
订单系统发消息给消息队列,其他三个系统分别从消息队列中取消息,做自己的事。这样,系统之间就松耦合了。

削峰:
双11的时候,大家都在某个时间段开抢,这时候流量会达到一个峰值,后端大量的请求会访问数据库,而数据库的连接数是有限的,支持的并发数有限,此时可能会发生系统崩溃。而RabbitMq解决了这个问题,我们先把请求发送到Mq,再由消费者去Mq拿这个消息,按照可以承受的数量去处理。

Mq自己不生产消息,也不消费消息,只是一个中介。生产者产生的消息会存储在Queue中,底层是存在一个数据库里(Mnesia)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值