关于MQ的总结归纳

 

最近被问到一个问题:谈谈你对MQ的理解。

 

回答时心里还是很有谱的,因为对于MQ的研究学习没少花功夫,我就开始回答MQ主要是为了异步做削峰啊,防止洪峰让系统线程和内存爆掉啊,可以做一些非及时性的操作例如短信邮件发送啊,可以做操作热度和日志信息收集等高并发又可用性要求不高的场景啊。

 

         面试官对我的答案不满意,从更专业的角度给我做了分析,听完后如雷贯耳。

 

站在架构角度上来讲,什么情况下使用MQ

松耦合

 

站在业务角度上来讲,什么情况下使用MQ

非及时性,与之相对应的是RPCRestFul

 

MQ的优缺点:优点:松耦合、高并发;缺点:时延。我当时还回答了一个缺点“非可靠性”被考官challenge了,我理解的是把消息丢到MQ队列中后就不再去关心了,最终是否消费不确定。考官的答案是MQ一定是可靠的,因为它会先DiskMemory,消费不掉是业务实现上的原因,不是MQ本身的原因。(这一点还是十分尊敬阿里的技术人员,技术好而且为人nice,有回答错误或者停顿的时候会给你一些提示和纠正,为人随和有耐心)

 

最后才是MQ的应用场景:消息传递、内容收集、最终一致、削峰填谷

你可能感兴趣的:(MQ)