「MQ」消息队列常见的四种使⽤场景你都了解吗?
MQ消息队列应⽤场景(⼆)
消息队列在实际应⽤中包括如下四个场景:穿越小说排行
1. 应⽤耦合:多应⽤间通过消息队列对同⼀消息进⾏处理,避免调⽤接⼝失败导致整个过程失败;
2. 异步处理:多应⽤对消息队列中同⼀消息进⾏处理,应⽤间并发处理消息,相⽐串⾏处理,减少处理时间;
3. 限流削峰:⼴泛应⽤于秒杀或抢购活动中,避免流量过⼤导致应⽤系统挂掉的情况;
4. 消息驱动的系统:系统分为消息队列、消息⽣产者、消息消费者,⽣产者负责产⽣消息,消费者(可能有多个)负责对消息进⾏处理;
1. 异步处理
具体场景:⽤户为了使⽤某个应⽤,进⾏注册,系统需要发送注册邮件并验证短信。对这两个操作的处理⽅式有两种:串⾏及并⾏。
(1)串⾏⽅式:新注册信息⽣成后,先发送注册邮件,再发送验证短信;在这种⽅式下,需要最终发送验证短信后再返回给客户端。
(2)并⾏处理:新注册信息写⼊后,由发短信和发邮件并⾏处理;
在这种⽅式下,发短信和发邮件 需处理完成后再返回给客户端。
假设以上三个⼦系统处理的时间均为30ms,且不考虑⽹络延迟,则总的处理时间:
串⾏:30+30+30=90ms
并⾏:30+30 = 100ms
消息队列 : 30 ms
若使⽤消息队列:
并在写⼊消息队列后⽴即返回成功给客户端,则总的响应时间依赖于写⼊消息队列的时间,⽽写⼊消息队列的时间本⾝是可以很快的,基本可以忽略不计,因此总的处理时间相⽐串⾏提⾼了2倍,相⽐并⾏提⾼了⼀倍;
2. 应⽤耦合广东省大学
具体场景:⽤户使⽤QQ相册上传⼀张图⽚,⼈脸识别系统会对该图⽚进⾏⼈脸识别,⼀般的做法是,服务器接收到图⽚后,图⽚上传系统⽴即调⽤⼈脸识别系统,调⽤完成后再返回成功,如下图所⽰:
该⽅法有如下缺点:ps快捷键
⼈脸识别系统被调失败,导致图⽚上传失败;
延迟⾼,需要⼈脸识别系统处理完成后,再返回给客户端,即使⽤户并不需要⽴即知道结果;
图⽚上传系统与⼈脸识别系统之间互相调⽤,需要做耦合;
客户端上传图⽚后,图⽚上传系统将图⽚信息如uin、批次写⼊消息队列,直接返回成功;⽽⼈脸识别系统则定时从消息队列中取数据,完成对新增图⽚的识别。
此时图⽚上传系统并不需要关⼼⼈脸识别系统是否对这些图⽚信息的处理、以及何时对这些图⽚信息进⾏处理。事实上,由于⽤户并不需要⽴即知道⼈脸识别结果,⼈脸识别系统可以选择不同的调度策略,按照闲时、忙时、正常时间,对队列中的图⽚信息进⾏处理。
3. 限流削峰
大湾区指的是哪些地区具体场景:购物⽹站开展秒杀活动,⼀般由于瞬时访问量过⼤,服务器接收过⼤,会导致流量暴增,相关系统⽆法处理请求甚⾄崩溃。⽽加⼊消息队列后,系统可以从消息队列中取数据,相当于消息队列做了⼀次缓冲。
法人代表授权委托书
该⽅法有如下优点:
请求先⼊消息队列,⽽不是由业务处理系统直接处理,做了⼀次缓冲,极⼤地减少了业务处理系统的压⼒;
队列长度可以做限制,事实上,秒杀时,后⼊队列的⽤户⽆法秒杀到商品,这些请求可以直接被抛弃,返回活动已结束或商品已售完信息;
4. 消息驱动的系统
具体场景:⽤户新上传了⼀批照⽚, ⼈脸识别系统需要对这个⽤户的所有照⽚进⾏聚类,聚类完成后由对账系统重新⽣成⽤户的⼈脸索引(加快查询)。这三个⼦系统间由消息队列连接起来,前⼀个阶段的处理结果放⼊队列中,后⼀个阶段从队列中获取消息继续处理。
江畔独步寻花 古诗避免了直接调⽤下⼀个系统导致当前系统失败;
每个⼦系统对于消息的处理⽅式可以更为灵活,可以选择收到消息时就处理,可以选择定时处理,也可以划分时间段按不同处理速度处理;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论