学习笔记:消息队列(一)引入|青训营;

47 阅读1分钟

曾经我以为,消息队列是指设备之间通信,但实际上这太狭隘了。消息可以理解为对象之间的交互方式,队列是一种数据结构,先入先出。综合起来,消息队列就是指当很多消息传来的时候,应当如何处理的问题。

消息队列要解决的问题

案例

删库跑路(数据库无法访问)怎么办?

我们有不少内容都是需要对数据库进行操作的内容,但如果数据库被恶意攻击,无法访问或者数据清除时,我们能做些什么呢?

1692582539898.png

请求量过大怎么办?

一款火爆的APP一定有很多用户和热门功能,如果消息太多,造成服务器宕机怎么办?

1692582640392.png

链路耗时长尾怎么办?

完成一项服务需要经过很多步骤,要是时间太长无疑会造成用户流失,那怎么办?

1692582704832.png

日志如何处理?

我们需要使用日志,那怎么处理?

解决方案

解耦

把系统中不同的部分分离开来,使它们之间可以互相独立地运行,互不干扰,不被任何不必要的部分影响到。 使用消息队列作为缓冲服务,减少其中的依赖性。

削峰

减少最大请求量。利用消息队列存储未被执行的请求,每次从消息队列获取一定量的请求数据。

异步

长尾链路中的一部分内容是可以一起执行的。

日志处理

利用消息队列处理每一条日志。