华为云计算 云知识 RabbitMQ的应用场景
RabbitMQ的应用场景

RabbitMQ作为一款热门的消息队列中间件,具备高效可靠的消息异步传递机制,主要用于不同系统间的数据交流和传递,在企业 解决方案 、金融支付、电信、电子商务、社交、即时通信、视频、物联网、车联网等众多领域都有广泛应用。

异步通信

将业务中属于非核心或不重要的流程部分,使用消息异步通知的方式发给目标系统,这样主业务流程无需同步等待其他系统的处理结果,从而达到系统快速响应的目的。

如网站的用户注册场景,在用户注册成功后,还需要发送注册邮件与注册短信,这两个流程使用RabbitMQ消息服务通知邮件发送系统与短信发送系统,从而提升注册流程的响应速度。

图1串行发送注册邮件与短信流程

RabbitMQ的应用场景1

图2借助消息队列异步发送注册邮件与短信流程

RabbitMQ的应用场景2

错峰流控与流量削峰

在电子商务系统或大型网站中,上下游系统处理能力存在差异,处理能力高的上游系统的突发流量可能会对处理能力低的某些下游系统造成冲击,需要提高系统的可用性的同时降低系统实现的复杂性。电商大促销等流量洪流突然来袭时,可以通过队列服务堆积缓存订单等信息,在下游系统有能力处理消息的时候再处理,避免下游订阅系统因突发流量崩溃。消息队列提供亿级消息堆积能力,3天的默认保留时长,消息消费系统可以错峰进行消息处理。

另外,在商品秒杀、抢购等流量短时间内暴增场景中,为了防止后端应用被压垮,可在前后端系统间使用RabbitMQ消息队列传递请求。

图3消息队列应对秒杀大流量场景

RabbitMQ的应用场景3

系统解耦

以电商秒杀、抢购等流量短时间内暴增场景为例,传统做法是,用户下单后,订单系统发送查询请求到库存系统,等待库存系统返回请求结果给订单系统。如果库存系统发生故障,订单系统获取不到数据,订单失败。这种情况下,订单系统和库存系统两个子系统高耦合。

图4系统高耦合

RabbitMQ的应用场景4

引入RabbitMQ消息队列,当用户下单后,将消息写入到RabbitMQ消息队列中,然后返回用户下单成功。

库存系统订阅下单的消息,消费下单消息,然后进行库操作。即使库存系统出现故障,也不影响用户下单。

图5系统解耦

RabbitMQ的应用场景5

高可用

镜像 队列是 开源 RabbitMQ 2.6.0版本新增的一个功能,允许集群将队列镜像到其他节点上,当集群某一节点宕机后,队列能自动切换到镜像中的其他节点,保证服务的可用性。

普通队列,由于队列以及队列内容仅存储在单节点上,当该节点故障后,对应的队列不可用。

RabbitMQ引入镜像队列机制,将队列镜像到集群中的其他节点上,每一个镜像队列包含一个主队列和多个从队列,并分布在集群的不同节点上。


上一篇:Pod 下一篇:创建子网资源标签CreateSubnetTag

分布式消息服务RabbitMQ版 

 

分布式消息队列RabbitMQ 是100%兼容开源RabbitMQ的云上消息队列服务,支持广播、事务消息、消息路由、死信队列、优先级队列等特性,广泛应用于秒杀、流控、系统解耦等场景