MQ常见面试问题

1. 什么是mq?     

mq 就是消息队列,通过生产者——消费者模型,实现消息的发送与接收,生产者与消费者完全独立,没有业务入侵。生产者不断向mq服务器发送消息,消费者不断从mq消费消息。

2. 项目中为什么要使用mq ?

mq使用的三大场景是:异步,削峰,解耦

异步

有异步就有同步,先来说同步问题,比如你要购买一件东西,选好物品之后进行订单提交,这时后端需要接收你的订单请求,也就是创建订单,然后调用库存进行扣库存操作,再调用短信通知等,所有的流程都是线性操作,这时会导致整个流程太长,而且有些操作是和用户下单无关的,比如短信通知,哪怕不通知对整个业务流程也没多大影响。

所以,此时就可以使用异步的方式进行处理,即下单成功之后,我通知短信服务下单成功了,你可以发短信了,但短信怎么发,发不发就不关我的事了。

削峰

我们知道随着互联网数据量大大幅度增长,数据量已经是一个值得考虑的问题;比如双十一时,每秒钟的下单量可能达到十几万,这时如果采用传统的串行方式,系统会绷不住的,所以需要对流量进行分流;

在业务前端部署一个mq服务,所有的下单请求只做最简单的数据记录,然后把信息丢到mq上,之后由消费者再进行具体的下单操作。

解耦

解耦就是把应用功能进行拆分,还拿下单功能来说,用户发起下单请求,后台创建订单,然后扣减库存,物流发货等;而如果把这所有的功能都进行线性处理,那么只要其中任何一个环节出问题都会导致下单失败,而正常来说,你扣减库存和发物流是和下单没有关系的。

所以,使用mq对系统解耦之后,每个模块只需要负责本模块的功能即可,不需要关心其它功能点有哪些功能,每个功能是怎么实现的。

当然,引入mq之后因为增加了一个环节,就会导致系统的复杂性增加,所以引入mq之后就会带来新的问题,这里会在下章进行说明。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值