当前位置:网站首页>MQ的概述及优缺点及使用场景
MQ的概述及优缺点及使用场景
2022-08-07 02:37:00 【羡云不羡君】


直接的远程调用:例如:dubbo中的RPC

MQ:优势
1.应用解耦:
直接远程调用的方式:

问题一:容错性问题
假如库存系统挂掉了,然后订单系统在下订单的时候,整个链路就走不通了,导致订单系统也出现问题,(整个系统的容错性比较低)

问题二:可维护性问题
当想要加一个x系统的时候,就需要修改订单系统的代码,然后访问x系统

MQ解决上面两个问题
当用户下订单访问订单系统,订单系统发一条消息给MQ,这时候就可以给用户返回说下单成功了。然后后面的系统只需要从MQ中把消息拿出来并在自己的系统中消费就可以了。

问题一:还是当库存系统 出现问题了

库存系统修复好了,只需要从MQ中拿出消息,消费就好了。并不会导致订单系统也出现问题
问题二:可维护性问题:当加了一个x系统的时候。订单系统一行代码也不要改。只需要让x系统从MQ中把消息拿出来消费就好了。

2.异步提速
远程调用的方式:订单系统调DB然后订单系统调库存系统,然后订单系统调支付系统,然后订单系统调物流系统,然后订单系统调X系统。

使用MQ过后:订单系统只需要保存自己的数据库花费20ms,然后再向MQ发送消息。25ms就能得到响应

3.削峰填谷
远程调用的方式 :假设A系统每秒最大处理1000请求,突然用户多了,每秒5000请求,A系统就挂了

MQ做法:



MQ劣势
1.系统的可用性降低
远程调用的方式:只需要保证AB系统都没问题,那么整个系统就没问题

使用MQ过后:还要保证mq没问题


2.系统的复杂度提高

3.一致性问题

MQ的使用应该满足什么条件
1.生产者不需要从消费者处获得反馈

假设有A B C三个系统 A调用了B系统过后,得到的结果再去调用C系统
2.容许短暂的不一致性
例如:刚才的订单系统,下了订单过后,订单系统发送消息给MQ,不需要等待库存系统等待把消息消费
3.确实有效果

边栏推荐
猜你喜欢
随机推荐
FutureTask源码深度剖析
EventBus Series: User Guide for Index Subscriber Index in Event Bus 3.0
光模块故障的主要原因及解决办法
2022 NeurIPS Smart Driving Competition
Rasa 3.x Learning Series - Rasa [3.2.5] - 2022-08-05 New version released
【数学建模】Topsis优劣解距离法
WiFi 四次握手&Omnipeek抓包
【Jmeter生成测试报告】
cmd 命令查询域名的 dns 解析记录(A,NS,MX,CNAME,TXT)
EventBus系列:Event Bus 3.0中索引Subscriber Index使用指南
Literature Reading (183) MAGMA
83-MongoDB介绍
6-8 求二叉树高度(20分)
Literature reading (184) AXI QoS
文献阅读(183)MAGMA
什么是agr线?
Transformer principle and application analysis in various fields
51单片机——暴躁升旗手在线升旗(一款简陋的升旗装置)
在本地与服务器之间拷贝数据
jsp使用









