Rabbitmq在高并发应用中的作用

介绍

2007 年发布,是一个在 AMQP(高级消息队列协议)基础上完成的,是当前最主流的消息中间件之一。
RabbitMQ是一个由erlang语言开发的AMQP(Advanced Message Queue 高级消息队列协议 )的开源实现,由于erlang 语言的高并发特性,性能较好,本质是个队列,FIFO 先入先出,里面存放的内容是message。
RabbitMQ 是一个消息中间件:它接收消息并且转发,就类似于一个快递站,卖家把快递通过快递站,送到我们的手上,MQ也是这样,接收并存储消息,再转发。

应用解耦

​ 以电商应用为例,应用中有订单系统、库存系统、物流系统、支付系统。用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障,都会造成下单操作异常。

当转变成基于消息队列的方式后,系统间调用的问题会减少很多,比如物流系统因为发生故障,需要几分钟来修复。在这几分钟的时间里,物流系统要处理的内存被缓存在消息队列中,用户的下单操作可以正常完成。当物流系统恢复后,拉取中间件的消息即可,中间用户感受不到物流系统的故障,提升系统的可用性。
在这里插入图片描述

异步调用提速

如下图所示,异步调用比起同步调用减少了响应时间。
在这里插入图片描述

在这里插入图片描述

削峰填谷

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

利用mq的缓冲功能,将瞬时的大量的请求缓存到mq中,分批消费,减少服务器压力。

用户卡顿

但是由于是队列的结构,先到的请求先消费,用户感知不明显,但是后到的请求就会让用户感觉卡顿

消息中间件的劣势

在这里插入图片描述

最好使用集群解决可用性问题

常用的mq产品

在这里插入图片描述
rabbitmq的消息几乎可以做到不丢失,可靠性很高,适合用于金融领域中。

kafka常用于大数据领域的日志收集,可能会丢失消息。

以上图片来自图灵课堂中的白起老师的rabbitmq的网课截图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值