0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

支付系统就该这么设计,稳的一批!!

jf_ro2CN3Fa 来源:芋道源码 2023-05-26 16:31 次阅读

  • Part one 支付系统总览
    • 核心系统交互
    • 业务图谱
  • Part two 核心系统解析
    • 交易核心
    • 支付核心
    • 渠道网关
    • 资金核算
  • Part three 服务治理
    • 平台统一上下文
    • 数据一致性治理
    • DB拆分
    • 异步化
  • Part four 生产实践
    • 性能压测
    • 稳定性治理
    • 核心链路分离
    • 服务依赖降级

3b575122-fafb-11ed-90ce-dac502259ad0.jpg


支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?

抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。

其实整体可以看成是交易核心+支付核心 两个大系统。交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下 各个系统的核心组成和交互。

Part one 支付系统总览

核心系统交互

3b682330-fafb-11ed-90ce-dac502259ad0.png

业务图谱

3b6fb384-fafb-11ed-90ce-dac502259ad0.png

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

Part two 核心系统解析

交易核心

交易核心把公司的业务系统和底层支付关联起来,让业务系统专注于业务,不比关心底层支付。

交易核心

3b758214-fafb-11ed-90ce-dac502259ad0.png

基础交易类型抽象

3b7cc7b8-fafb-11ed-90ce-dac502259ad0.png

多表聚合 & 订单关联

3b89cda0-fafb-11ed-90ce-dac502259ad0.png

支付核心

支付核心主要负责将多种支付类型进行抽象,变成 充值提现退款转账四种支付形态。同时,还要负责集成多种支付工具,对支付指令进行编排等等。

支付核心总览

3b91bec0-fafb-11ed-90ce-dac502259ad0.png

支付行为编排

其目的,是实现 插件式开发支付规则可配置的 灵活开发方式。

3ba1c018-fafb-11ed-90ce-dac502259ad0.png

异常处理

异常处理包括了 重复支付、部分支付、金额不一致、其他异常等异常场景。

3baa50c0-fafb-11ed-90ce-dac502259ad0.png

渠道网关

3bb0a4ac-fafb-11ed-90ce-dac502259ad0.png

资金核算

3bbcc138-fafb-11ed-90ce-dac502259ad0.png

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

Part three 服务治理

平台统一上下文

通过确定系统边界、业务建模拆分之后,整个支付平台被拆分几十个服务,而如何保障在服务间流转业务信息不被丢失,是我们需要考虑的问题。平台统一上下文的要素信息(唯一业务标识码),在整个支付平台链路中全程传递,被用来解决这个问题。

3bc2496e-fafb-11ed-90ce-dac502259ad0.png

数据一致性治理

大型的支付公司,内部都有非常严格和完备的数据一致性方案,比如采用业务侵入性非常大的分布式事务等,以牺牲开发效率来提升数据的稳定,是非常有必要的。而业务公司,如果不采用分布式事务又有哪些应对策略呢?

CAS校验

3bca70c6-fafb-11ed-90ce-dac502259ad0.png

幂等 & 异常补偿

3bd0b1b6-fafb-11ed-90ce-dac502259ad0.png

对账

3bd9326e-fafb-11ed-90ce-dac502259ad0.png

准实时对账

3bdf5bb2-fafb-11ed-90ce-dac502259ad0.png

DB拆分

3be780f8-fafb-11ed-90ce-dac502259ad0.png

异步化

支付是整个交易链路的核心环节,那么,怎么兼顾支付系统的稳定性和执行效率呢?是异步化。

消息异步化

3bef9d2e-fafb-11ed-90ce-dac502259ad0.png

外部支付调用异步化

3bf7c620-fafb-11ed-90ce-dac502259ad0.png

在外部支付中,经常需要服务方与第三方支付交互,获取预支付凭证,如上图所示。

这种同步调用的情况下,由于需要跨外部网络,响应的 RT 会非常长,可能会出现跨秒的情况。由于是同步调用,会阻塞整个支付链路。一旦 RT 很长且 QPS 比较大的情况下,服务会整体 hold 住,甚至会出现拒绝服务的情况。

3bfcaabe-fafb-11ed-90ce-dac502259ad0.png

因此,可以拆分获取凭证的操作,通过独立网关渠道前置服务,将获取的方式异步化,从前置网关获取内部凭证,然后由前置网关去异步调用第三方。

异步并行化

3c036606-fafb-11ed-90ce-dac502259ad0.png

资金核算异步化

3c0c94ce-fafb-11ed-90ce-dac502259ad0.png

热点账户账务单独处理

3c1300ac-fafb-11ed-90ce-dac502259ad0.png

记账事务切分

3c1a7ca6-fafb-11ed-90ce-dac502259ad0.png

Part four 生产实践

性能压测

构建压测模型,模拟现实真实场景;压测数据进影子库,正常业务无侵入;单机性能和集权链路都不能忽视;识别系统稳定性和容量配比。。。

3c27893c-fafb-11ed-90ce-dac502259ad0.png

稳定性治理

3c3172c6-fafb-11ed-90ce-dac502259ad0.png

核心链路分离

3c3e7cf0-fafb-11ed-90ce-dac502259ad0.png

服务依赖降级

3c43c322-fafb-11ed-90ce-dac502259ad0.png

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87600
  • 网关
    +关注

    关注

    9

    文章

    3208

    浏览量

    50019
  • 支付系统
    +关注

    关注

    0

    文章

    78

    浏览量

    10079

原文标题:支付系统就该这么设计,稳的一批!!

文章出处:【微信号:芋道源码,微信公众号:芋道源码】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一批旧报警器主板主芯片 SST89E554RC 如何重新利用

    一批旧报警器主板主芯片 SST89E554RC如何重新利用
    发表于 02-26 09:30

    WIZnet “Connect the Magic” 2014年全球设计挑战赛最后一批样片!

    `WIZnet “Connect the Magic” 2014年全球设计挑战赛 最后一批W550io 样片到了!想拥有他们的小伙伴,快快来加入到竞赛中来,先到先得!报名相关信息: http
    发表于 04-17 15:34

    labview在存储一批数据时如何存储到不同的文件中

    本帖最后由 oh花花花花 于 2015-4-19 19:35 编辑 labview在存储一批数据时,如何存储到不同的文件中?(分包存储)
    发表于 04-19 19:33

    【官方】第一批企业盗版举报奖励已经发放

    亲爱的工程师伙伴们,第一批盗版举报的奖励已经发放。特此通知。请勿举报网站或是盗版光碟销售小店,这个。。归网警和城管管。。谢谢。。再次感谢大家对正版化的支持给大家拜个晚年Altium中国2017.2.4
    发表于 02-04 14:02

    一批WOC设备出售

    ` 本帖最后由 dtyue 于 2017-2-7 09:26 编辑 本公司有一批生产WOC镜头的设备,因该事业部转型,现将整批设备出售,设备状态完好。欢迎有实力的公司与我联系:孙女
    发表于 02-07 09:19

    高价回收一批西门子315系列317/CPU模块 求购一批331西门子plc模块

    本帖最后由 龙收购西门子模块 于 2020-5-12 16:10 编辑 高价回收一批西门子315系列317/CPU模块 求购一批331西门子plc模块 ***同步微信QQ1173415480
    发表于 05-30 11:34

    求购一批基恩士激光传感器 高价回收一批全新基恩士激光传感器

    本帖最后由 回收西门子模块 于 2022-2-10 14:36 编辑 求购一批基恩士激光传感器 高价回收一批全新基恩士激光传感器,,回收LV-N11CN,LR-W500基恩士传感器,回收基恩士
    发表于 11-26 16:48

    有测量,测绘一批的中高级职称,可网查的,需要的电联

    有测量,测绘一批的中高级职称,可网查的,需要的电联***)QQ300738527苏工
    发表于 12-10 10:29

    大量回收一批plc模块西门子331模块,求购一批伺服驱动器

    `大量回收一批plc模块西门子331模块,求购一批伺服驱动器,大量回收一批plc模块西门子331模块,求购一批伺服驱动器 高价回收,全新西门子触摸屏高价回收,全新AB模块高价回收(长期
    发表于 10-15 08:45

    高价大量回收一批plc模块西门子331模块,求购西门子一批伺服驱动器

    ` 高价大量回收一批plc模块西门子331模块,求购西门子一批伺服驱动器,全新西门子触摸屏高价回收,全新AB模块高价回收(长期有效) 西门子系列型号触摸屏、求购西门子模块、触摸屏、伺服电机、模拟量
    发表于 11-01 12:37

    高价回收一批西门子SM331模块收购一批6DD系列

    *** 同步微信QQ 1173415480 高价回收一批西门子SM331模块收购一批6DD系列回收上门收购plc模块回收:西门子plc模块,三菱plc模块,欧姆龙plc模块,施耐德plc模块、abb
    发表于 12-03 13:14

    济宁回收一批模块 求购一批西门子315-2DPCPU模块

    ***同步微信QQ 1173415480 济宁回收一批模块 求购一批西门子315-2DPCPU模块高价回收拆机二手CPU2DP315模块317模块plc模块吗 长期高价回收西门子S7-300PLC
    发表于 12-03 13:34

    【南宁高价回收一批西门子300系列模块】【南宁本地专业回收一批发那科伺服驱动器】

    【南宁高价回收一批西门子300系列模块】【南宁本地专业回收一批发那科伺服驱动器】全国长期高价收购西门子6ES7西门子系列模块高价收购西门子6DD 6GK 西门子系列型号触摸屏、求购
    发表于 06-02 09:42

    新来一批料,有需要的来

    新来一批料,有需要的来EY4409EN2305ET8205AEN2301ET4410EV3404EM8810EV3415ET8205EV3407EV3401ET4435EV3400EN2300道合顺大数据上https://www.infinigo.com/直接搜索你要的型号在线下单购买
    发表于 07-15 16:21

    新到一批型号,有需要的来

    新到一批型号,有需要的来SY8088AACSY8089AAACLTC8552XV8/R6LTC8552XS8/R8LTC324XS14/R5LTC321XT5/R6LTC358XS8
    发表于 07-16 17:37