这是我参与「第五届青训营 」伴学笔记创作活动的第12天。
消息队列前世今生
四个案例解释消息队列能解决的问题
背景重述:
- 有一天晚上晚上我们上完课,回到宿舍,想着新出的游戏机,但又摸了摸钱包,太贵了买不起,这个时候你突然想到,今天抖音直播搞活动,瞬间你掏出了手机打开抖音搜索,找到直播间以后,你点开了心心念念的游戏机详情页,看到价格只要500。这个时候我们分析-下,就我们上面这几步操作,在我们的程序背后,做了什么事情。
- 案例一:系统崩溃--后端删库跑路
- 解决方案:解耦
- 增加消息队列进行缓存,消息队列作为一个容器储存用户记录并定时传入存储库,确保后台服务器宕机系统仍然可以正常运行
- 案例二:无法处理海量请求
- 订单数量庞大,系统处理不过来。
- 解决方式:削峰
- 每次只接受一定数量的请求
- 案例三:app访问过慢
- 用户体验感极其差
- 解决方式:异步
- 多路并行
- 案例四:日志丢失
- 服务器损坏导致本地日志丢失问题。
- 解决方式:
业内消息队列使用情况
消息队列-Kafka
使用场景
如何使用
基本概念
框架
消息队列- BMQ
兼容Kafka协议,存算分离,云原生消息队列
框架
组件对比
消息队列- RocketMQ
使用场景:例如,针对电商业务线,其业务涉及广泛,如注册、订单、库存、物流等;同时,也会涉及许多业务峰值时刻,如秒杀活动、周年庆、定期特惠等