开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段):支付回调问题分析和解决方式】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/703/detail/12395
支付回调问题分析和解决方式
本节分析第二个问题:在接收到第三方支付平台回调请求后如果快速进行数据处理,快速给第三方支付订单进行响应。
在此处如果按照传统方式进行处理例如现在要处理修改订单状态、用户增加积分、记录支付日志,按照传统方式 RPC是一个同步方式,意味着三件事情必须依次做完后才能响应第三方支付平台。如果当前支付请求比较多,那么第三方支付平台回调系统的请求就会大量的堆积。如何快速响应第三方支付平台并且保障三件事情都做完?可以使用 MQ 进行处理。
可以将现在支付成功的事情封装成消息,在获得第三方支付平台异步通知支付结果后判断:如果是支付成功情况,将消息放在 MQ 中,然后让订单服务、日志服务、用户服务监听 MQ,监听到支付成功消息,再各自处理业务。在支付过程中就不用等待做完后才能响应第三方支付平台。
目前实际上就是通过 MQ 快速将数据以消息形式分发,将同步调用改为异步调用,可以快速响应第三方支付平台,不会导致异步通知请求在系统产生堆积问题。
以上描述了核心功能以及做两大功能时需要关注的问题及问题解决方案,下节讲解代码处理问题。