案例場景:電商購物場景的下單和支付
一、 業(yè)務(wù)分析
1.1 下單
1、用戶請求訂單系統(tǒng)下單
2粘我、訂單系統(tǒng)通過RPC調(diào)用訂單服務(wù)下單
3衙猪、訂單服務(wù)調(diào)用優(yōu)惠券服務(wù)扛拨,扣減優(yōu)惠券
4蛤奥、訂單服務(wù)調(diào)用庫存服務(wù)点弯,校驗并扣減庫存
5盐碱、訂單服務(wù)調(diào)用用戶服務(wù)楼誓,扣減用戶余額
6玉锌、訂單服務(wù)完成確認(rèn)訂單
1.2 支付
1、用戶請求支付系統(tǒng)
2疟羹、支付系統(tǒng)調(diào)用第三方支付平臺API進(jìn)行發(fā)起支付流程
3主守、用戶通過第三方支付平臺支付成功后,第三方支付平臺回調(diào)通知支付系統(tǒng)
4榄融、支付系統(tǒng)調(diào)用訂單服務(wù)修改訂單狀態(tài)
5参淫、支付系統(tǒng)調(diào)用積分服務(wù)添加積分
6、支付系統(tǒng)調(diào)用日志服務(wù)記錄日志
二愧杯、 下單數(shù)據(jù)回退問題
2.1 下單問題分析
用戶提交訂單后涎才,扣減庫存成功、扣減優(yōu)惠券成功力九、使用余額成功耍铜,但是在確認(rèn)訂單操作失敗,需要對庫存跌前、優(yōu)惠券棕兼、余額進(jìn)行回退,如何保證數(shù)據(jù)的完整性抵乓?
2.2 MQ解決下單數(shù)據(jù)回退問題
三伴挚、支付快速返回結(jié)果問題
3.1 支付問題分析
用戶通過第三方支付平臺(支付寶、微信)支付成功后臂寝,第三方平臺要通過回調(diào)API異步通知商家支付系統(tǒng)用戶支付結(jié)果章鲤,支付系統(tǒng)根據(jù)支付結(jié)果修改訂單狀態(tài)、記錄支付日志和給用戶增加積分咆贬。商家支付系統(tǒng)如何保證在收到第三方支付平臺的異步通知時败徊,如何快速給第三方支付憑條做出回應(yīng)?
3.2 MQ解決支付快速返回結(jié)果問題
通過MQ進(jìn)行數(shù)據(jù)分發(fā)掏缎,提高系統(tǒng)處理能力