项目终于开发完了,明天就开始联调了,总结下rocketma的使用场景和使用方法。
业务正常流程是这样的:用户下单 - 扣减库存 - 生成待支付订单 - 调用支付网关 - 支付成功后回调 - 修改订单数据 - 调发码平台购票,流程走完。
mq这里要做的是在生成待支付订单后将消息延迟10分钟放到mq,然后做一个异步监听,将监听到的数据去库里面查一遍有没有支付完成,如果没有支付完成就将订单取消,增加库存。
这么做的目的是防止有很多待支付的订单占用库存数量。
大致就业务就是这样,我这里用的是rocketmq-spring-boot-starter 2.1.1的版本
Producer:
rocketMQTemplate.asyncSend(String destination, Message> message, SendCallback sendCallback, long timeout, int delayLevel)
Consumer:主要是实现RocketMQListener接口的onMessage(T var1)方法
@Service @RocketMQMessageListener(consumerGroup = "producer-name", topic = "topic-name") public class OrderConsumerListener implements RocketMQListener{ @Override public void onMessage(String msg) { log.info("延迟消费信息:::{}", msg); //拿到业务数据,根据业务判断是否需要处理 } }
大致就是这样 。
今天发现了一个调试接口的软件,自己感觉要比postman好用,功能还挺全面的,分享一下
名字:ApiPost,我已经在用了。也安利给公司的小伙伴使用了。具体有多好用我就不说了,自行体会吧!!!
下载地址:下载中心-ApiPost-中文版接口调试与文档管理工具
文档:首页 - APIPOST使用文档



