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 生产实践

性能压测

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

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

    文章

    7045

    浏览量

    89062
  • 网关
    +关注

    关注

    9

    文章

    4476

    浏览量

    51120
  • 支付系统
    +关注

    关注

    0

    文章

    78

    浏览量

    10177

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    高价回收一批西门子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

    大量回收一批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

    在激烈竞争的过程中,一批优秀的伺服系统供应商出现了

    近年来,在与国外企业激烈竞争的过程中,国内成长起一批优秀的伺服系统供应商。
    发表于 01-03 09:49 1960次阅读

    曝iOS13或将清退一批老机型

    据外媒最新消息称,即将发布的iOS 13系统上,苹果将清退一批老机型。
    的头像 发表于 05-18 09:50 2466次阅读

    一批外包机构新增30家,收钱吧、网付、等获聚合支付“牌照”

    6月21日消息:中国支付清算协会发布了新一批收单外包服务机构名单。其中值得令人关注的是聚合支付威廉希尔官方网站 服务机构资质的仅30家,收钱吧(海南收钱吧商务服务有限公司)、网付(温州专帮信息科技有限公司)等聚合
    发表于 06-25 11:56 915次阅读
    新<b class='flag-5'>一批</b>外包机构新增30家,收钱吧、网付、等获聚合<b class='flag-5'>支付</b>“牌照”

    怎么下载鸿蒙系统 华为第一批鸿蒙名单

    华为公司已经在6月2日发布会上正式公布了第一批鸿蒙系统名单,那么,第一批鸿蒙系统升级名单包括哪些呢?下面就由小编来跟大家简单介绍下!
    的头像 发表于 07-08 09:22 1916次阅读

    风控系统这么设计一批

    目前我们业务有使用到非常多的AI能力,如ocr识别、语音测评等,这些能力往往都比较费钱或者费资源,所以在产品层面也希望我们对用户的能力使用次数做定的限制,因此风控是必须的!
    的头像 发表于 01-30 09:32 458次阅读