赞
踩
面试官问这个问题,肯定是想知道你们公司有一个什么场景需要使用到这个Mq,这个场景有一个什么技术挑战导致必须要用这个mq,用了这个mq之后有什么好处。mq经典的使用场景有解耦,异步,削锋。
异步通信:当一个系统收到请求,需要在自己系统处理数据,处理完后,还需要把数据发送给其他系统。而每个系统接收请求后处理数据的时间不一致。如果是同步请求的话,需要等待所有请求处理完之后,才能将结果返回。而异步是非阻塞的,可以直接将结果返回,然后再去处理数据。用mq可以把这个同步通信的过程变成异步通信的流程,从而达到一个低延时的特性。
系统耦合:当一个项目中,有多个系统时会发生严重的耦合。当一个系统有一个很重要的基础数据,而其他系统也需要这些数据。如果其他系统挂掉了,还怎么将这些消息发送出去。这个时候我们可以将消息发送到mq上,如果其他系统需要这些基础数据,可以直接去mq里面消费就行,不需要关系系统有没有挂掉,或者超时的情况。这就是mq的一个发布消息订阅模型,可以降低系统的耦合度。
流量削锋:当系统在某一瞬间有五千个请求进来时,而我们系统最多能处理两千条请求。那我们可以从mq中处理系统所承受的最大限度的请求,等高峰期一过,就将在mq中积压的请求全部处理掉。
缺点:不过使用mq,会导致系统可用性降低,复杂度提高。系统本身的外部依赖越多越容易挂掉,如果系统好好地,但是mq划掉的,整个项目就用不了了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。