美文网首页Java 杂谈Spring-Boot
RabbitMQ 延迟队列实现订单支付结果异步阶梯性通知

RabbitMQ 延迟队列实现订单支付结果异步阶梯性通知

作者: Java机械师 | 来源:发表于2019-02-22 16:08 被阅读5次

    场景

    在第三方支付中,例如支付宝、或者微信,对于订单请求,第三方支付系统采用的是消息同步返回、异步通知+主动补偿查询的补偿机制

    1.商户请求交易接口成功。

    2.接受银行的异步通知。

    3.处理业务,将通知URL和通知的数据放到队列中。通知队列是常驻的。

    4.如果通知商户成功/失败更新通知状态。如果通知失败,根据通知间隔重新把通知数据放到通知队列里。

    5*(2^n-1)秒后再次通知,n指回调次数,最大为5次!

    每次通知超时时间5秒。

    支付计费中心对于订单请求信息的处理:

    通过消息同步返回、异步通知、主动补偿查询相结合的机制

    其中对于订单的异步通知,目前的通知策略为3s、30s、60s、120s、180、300s的阶梯性通知。

    返回成功情况下就不继续通知了

    使用rabbitmq的消息延迟+死信队列来实现

    producer发布消息,通过exchangeA的消息会被分发到QueueA,Consumer监听queueA,一旦有消息到来就被消费,这边的消费业务就是通知前端,如果通知失败,就创建一个延迟队列declareQueue,设置每个消息的ttl然后通过declare_exchange将消息分发到declare_queue,因为declare_queue没有consumer并且declare_queue中的消息设置了ttl,当ttl到期后,将通过DLX路由到queueA,被重新消费

    下面小编为大家整理了RabbitMQ需要掌握的知识以及架构师必须具备的一些技术总结出来一套思维导图和录制了一些相关视频,分享给大家,供大家参考。

    需要相关资料的加群:810589193免费获取!!!

    1.1. 分布式架构思维

    1.2. Zookeeper分布式环境指挥官

    1.3. Nginx高并发分流进阶实战

    1.4. ActiveMq消息中间件

    1.5. RabbitMq消息中间件

    1.5.1. RabbitMQ及高可用集群部署

    1.5.2. 深入学习RabbitMQ消息分发机制及主题消息分发

    1.5.3. RabbitMQ消息路由机制分析

    1.5.4. RabbitMQ消息确认机制分析

    1.5.5. RabbitMQ基于Spring完成分布式消息队列实战

    1.5.6. 安装配置

    · 下载安装和日常管理

    · Web监控平台

    1.5.7. 集群化与镜像队列

    1.6. Kafka百万级吞实战

    1.7. Memcached进阶实战

    1.8. Redis高性能缓存数据库

    1.9. MongoDB进阶实战

    1.10. 高性能缓存开发实战

    1.11. Mysql高性能存储实战

    1.12. FastDFS分布式文件存储实战

    1.13. 高并发场景分布式解决方案实战

    一、开源框架解析:

    阅读、分析源码是程序员最基本的码代码能力也是码农的根本所在,学习经典源码中所用到的经典设计思想及常用设计模式,能够帮你了解大牛是如何写代码的,从而吸收大牛的代码功力。在阿里面试中,MyBatis,Spring等框架的底层原理是经常会被问到的。

    二、架构师筑基:

    百丈高楼平地起,基础也是非常重要的,基础不牢,自然不用谈架构。

    三、高性能架构

    性能一直是让程序员比较头疼的问题。当系统架构变得复杂而庞大之后,性能方面就会下降,特别是阿里巴巴这样的一线互联网公司最为注重,因此想进入阿里,性能优化一定是要去深入学习与理解的一环

    四、微服务架构

    关于微服务架构的取舍

    微服务是现在互联网架构技术中最火热的话题之一,也是我目前正在学习研究的方向。在面试过程中,面试官很少会问到关于微服务相关的问题。但作为一名开发者,一名有技术梦想的程序员微服务架构是现在必须要去了解的主流技术:

    五、团队协作:

    开发工具工程化

    通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。程序员的战斗,往往不是一个人的战斗,我们如何在一个平台下高效的去重,进行代码review,对功能进行调整,debug,做到在统一的规划下步步为营,混乱的堆代码的过程中找到自己的记录。这一切都依赖于有效的工具。

    六、B2C项目实战

    项目实战

    要想立足于互联网公司,且能在互联网浪潮中不被淹没,对于项目的开发实战演练是不必可少的技能,也是对自身能力的一个衡量,有多少的量对等于获得多少的回报。看似简单的一个项目需求图谱,其中的底层原理,实现原理又能知道多少?你搭建一个完整的B2C项目平台到底需要多少知识?这一切都是需要我们考量的。

    高清思维导图及相关视频资料获取方式

    加群:810589193,点击链接加入群聊【Java架构学习交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl

    相关文章

      网友评论

        本文标题:RabbitMQ 延迟队列实现订单支付结果异步阶梯性通知

        本文链接:https://www.haomeiwen.com/subject/jnmeyqtx.html