阿里云消息队列RocketMQ使用场景

本文为您介绍消息队列RocketMQ的主要使用场景,以便您更好地判断如何在业务中使用消息队列RocketMQ。

异步解耦

对于用户来说,注册功能实际只需要注册系统存储用户的账户信息后,该用户便可以登录,后续的注册短信和邮件不是即时需要关注的步骤。

对于注册系统而言,发送注册成功的短信和邮件通知并不一定要绑定在一起同步完成,所以实际当数据写入注册系统后,注册系统就可以把其他的操作放入对应的消息队列RocketMQ中然后马上返回用户结果,由消息队列RocketMQ异步地进行这些操作。

数据流动如下所述:

用户在注册页面填写账号和密码并提交注册信息,这些注册信息首先会被写入注册系统成功。

注册信息写入注册系统成功后,再发送消息至消息队列RocketMQ。消息队列RocketMQ会马上返回响应给注册系统,注册完成。用户可立即登录。

下游的邮件和短信通知系统订阅消息队列RocketMQ的此类注册请求消息,即可向用户发送邮件和短信通知,完成所有的注册流程。

用户只需在注册页面等待注册数据写入注册系统和消息队列RocketMQ的时间,即等待55 ms即可登录。

异步解耦是消息队列RocketMQ的主要特点,主要目的是减少请求响应时间和解耦。主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时,由于使用了消息队列 RocketMQ,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。

削峰填谷

流量削峰也是消息队列RocketMQ的常用场景,一般在秒杀或团队抢购活动中使用广泛。

在秒杀或团队抢购活动中,由于用户请求量较大,导致流量暴增,秒杀的应用在处理如此大量的访问流量后,下游的通知系统无法承载海量的调用量,甚至会导致系统崩溃等问题而发生漏通知的情况。为解决这些问题,可在应用和下游通知系统之间加入消息队列E-RocketMQ,。

秒杀处理流程如下所述:

用户发起海量秒杀请求到秒杀业务处理系统。

秒杀处理系统按照秒杀处理逻辑将满足秒杀条件的请求发送至消息队列RocketMQ。

下游的通知系统订阅消息队列E-RocketMQ的秒杀相关消息,再将秒杀成功的消息发送到相应用户。

用户收到秒杀成功的通知。

消息的顺序收发

消息队列RocketMQ顺序消息为全局顺序:

全局顺序:对于指定的一个Topic,所有消息将按照严格的先入先出(FIFO)的顺序,进行顺序发布和顺序消费。

大规模机器的缓存同步

在某些网页数据实时变化的场景下,缓存技术便无法满足对数据的实时访问需求,多次的查询将会对页面打开速度产生影响。

使用消息队列RocketMQ的广播消费模式,那么这条消息会被所有节点消费一次,相当于把相关数据信息同步到需要的每台机器上,取代缓存的作用。