什么场景使用了mq?直接掉接口不行吗?

主要是:解耦、异步、削峰。
(1) 解耦: 例如,生产系统A系统发送数据到B,C,D三个系统中,通过调用接口发送。如果E系统也需要这个消息呢?那如果C系统不需要这个消息了呢?A系统与其他的系统产生严重的耦合。如果使用MQ,A系统产生一条数据,发送到MQ中,哪个系统需要数据自己到MQ里面去消费。如果新系统需要数据直接从MQ里面消费即可;当某个系统不需要这条数据了,就取消读数据的消费即可。这样下来的话A系统压根不需要考虑要给谁发送数据,不需要维护这个代码,也不需要考虑其他系统是否调用成功,失败超时等情况。所以也不需要 直接同步调用接口的,因为MQ直接将它给异步解耦了。

没有使用MQ:
在这里插入图片描述
使用MQ之后:

在这里插入图片描述

(2)异步:A系统接收到一个请求,需要在自己的本地写库,还需要在B,C,D三个系统中写库,B,C,D三个系统写库完毕返回给用户。最终的请求总延时是A+B+C+D的时间,时间过长,导致用户体验不好。如果使用MQ,那么A系统直接发送3条消息到MQ消息队列中,那么A系统返回给用户的数据是A+MQ消耗2的时间,其他系统需要消费到MQ中进行再将数据写入到本地的库中。大大提升了用户的体验。

我们先看一下同步请求的弊端如下图所示
在这里插入图片描述
下面我们看一下使用MQ之后的示例图:
在这里插入图片描述
(3)削峰:减少高峰期对服务器的冲击压力。
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值