MQ的概述及优缺点及使用场景

 直接的远程调用:例如: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.确实有效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值