RabbitMQ使用场景简单介绍

本文探讨了RabbitMQ在秒杀订单削峰、解耦刷缓存及订单支付成功后的发布订阅三种典型场景下的应用。秒杀订单场景中,RabbitMQ负责处理瞬时高并发请求,实现请求的有序排队;在解耦刷缓存场景,通过RabbitMQ实现实时的商品信息同步至缓存;订单支付成功场景下,RabbitMQ作为消息中间件,支持订单状态变更通知的发布与订阅。

概述


Rabbit MQ的使用场景非常多,典型的场景主要分为下面几种:

  • 削峰
  • 基于pub/sub模型的事件驱动
  • 跨系统的异步通信

下面简要的梳理一下这几种场景。


秒杀订单之削峰


在这里插入图片描述

sec-kill-order独立集群的职责有三个:

  • 接收所有瞬时涌入的秒杀请求,并以先进先出的方式将请求保存到队列里,将请求排队,起到削峰的作用;
  • 提供拉取数据接口,给秒杀业务处理层使用;
  • 提供用户秒杀订单查询状态的接口;

秒杀业务处理层则用于监听后端接口的处理能力并从sec-kill-order里获取请求,并将请求分发到后端服务。


解耦之刷缓存


之前参与过一个电商应用,主要是输出销售商品信息的,由于访问量比较大,使用了Memcache作为中央缓存。后台的业务人员可以手动的改动商品信息,因此需要准实时的将改动的信息同步到缓存里。

在这里插入图片描述

当然我们直接在商品后台更新完商品数据后,同步操作操作memcache也是可以的,但是不推荐这么做,理由如下:

操作缓存的应用,最好是离缓存最近的应用,如上面的C端商品服务,像后台服务、定时任务等,最好不要直接操作C端缓存,需要做解耦操作,将刷缓存的逻辑收拢到同一个地方。


订单支付成功之发布订阅


在这里插入图片描述

如上图,当订单api收到支付成功的消息后,将订单状态扭转为已支付后,需要发布一条订单已成功支付的消息,有两个应用需要订阅这条消息,一个是pms营销系统,一个是大数据。pms需要订阅订单支付成功的消息的理由有好几个,例如:

  • 用户下了一个拼团订单,当订单支付成功后,需要更新团的状态以及已参团人数;
  • 用户的订单可能还用了优惠券,订单支付成功后,需要将用户的优惠券状态扭转为已使用;

而大数据侧则可以利用这条消息做一个实时的已支付订单dashboard。当然像WMS侧也是需要感知已支付订单的,用于扣减仓库的库存。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值