Ricky的面试比惨俱乐部 EP1 消息队列

什么是消息队列?(fundmental question:what is it)

首先这是一个存放消息的容器,然后这个容器是先进先出的队列。

为什么要用消息队列?(why, why use this)

1.性能削峰
2.async
3.解耦合

senario:

618,1111你秒杀东西,刚点下单,叮,你的购物app说不好意思现在业务高峰请等待下单或者下单失败再见了您嘞,别家买吧!
说白了就是:高并发,client请求高峰,数据库压力增加,响应变慢。
那咋办(摊手):
用户的请求数据发送给消息队列之后立即返回,消息队列的消费者进程从消息队列中获取数据,异步写入数据库,消息队列服务器处理速度快于数据库(消息队列也比数据库有更好的伸缩性),因此响应速度得到大幅改善。
比如你给某大厂发简历。。人家自动回复说哎我收到你的简历啦,感谢你关注我们公司,后续会通知你直面或者笔试或者直接感谢信啦,请慢等噢,然后hr那边到了某个时间点,一堆简历慢慢筛选慢慢发邮件通知。hr处理的那边不一定是一个先进先出的过程,但是这个例子就是说用异步去提高性能的场景,尤其是在秋招窗口期,hr收到的简历可能真的是无数,这时候异步就能起到削峰的作用,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。

上述是异步与削峰的场景,那么解耦呢,MQ在解耦当中是什么样的一个作用?

这时候如果你如果了解过服务计算,服务选择,服务发现,服务组合这些东西,那么就容易明白,它的解耦就类似在MQ中实现服务的组合,各个模块各个接口我都提供给你了,你要啥自己拿,不要的你放回去。
detailed explaination:
https://www.cnblogs.com/laojiao/p/9573016.html
缺点呢?
先回去睡觉,有空再说。。。

全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务