【技术干货】40页PPT分享万亿级交易量下的支付平台设计(2)

简介: 【技术干货】40页PPT分享万亿级交易量下的支付平台设计(2)

image.png


首先是总体业务架构设计,主要包括4个部分:第1部分是我们服务的渠道和场景,包括SDK,WAP,PC各端,线上线下门店;以及电商体系的应用,金融APP的应用等;第2是我们的合作方银行:包括中农工建交等以前的直连银行,以后后来的网联,银联等;第3是贯穿整个全流程的风险控制体系与运营支撑体系,包括欺诈风险,信用风险,以及配置产品,运营的各种支撑系统;第4是云支付平台本身在云支付平台中包含三大子架构域:一是开放平台,把我们内部的服务统一开放出去给各个渠道、各个服务去使用;二是对这个平台进行层层抽象,将c端业务平台当中线上线下的公用逻辑抽取到c端业务平台,b端业务平台当中各个行业支付的公用逻辑,我们会抽取到b端公用平台。第3作为支付核心,会统一整合内外部支付工具以及账户核心操作指令统一提供给上层使用。


image.png


业务架构决定了系统架构,从纵向来看,我们分为应用层、数据层、技术服务层、基础设施层,以及贯穿整个全流程的决策支持与运营支撑层。


从横向来看,分成面向用户和商户的服务交付层(通过开放平台交付给我们的合作伙伴,通过这个平台前置服务于苏宁易购生态圈的各个应用场景);应用服务层(包括业务处理类、管理类、数据类);通用服务层(即平时常见的支付收银台、风控、合同计费等);核心服务层(包括会员、账务核心、清结算等);网关服务层(因为我们需要集成外部的一些服务,包括金融服务,通过金融交换服务去做;沟通网关,面向运营商的;业务网关,面向和我们合作的商户的);


整体架构的设计,我们采用了插件式的架构设计思想,比如服务交付层,我们基于标准的平台业务进行服务交付,这样可以使各应用域独立并行的研发;对网关服务层,我们基于标准的外部服务引入,使平台具有快速可扩展性。


image.png



业务架构和系统架构决定了我们的技术架构,技术架构包括三大部分:


持续交付层,以及支撑我们持续交付的中间件层以及基础设施部分:持续交付重点有两个,第一是快:开发快,所以我们有开发的插件、模板生成工具;测试快,从自动化测试到持续集成,到一键建站的统一拉起;发布快,有现成的发布流程支持;业务验收快,这个是我们支付平台独有的一项,上线之后要做业务匹配分析和还原,这个有两点好处:(1)对业务来说,可以快速地知道需求有没有按照业务预期的开发;(2)对研发人员来说,可以快速地知道研发的需求是否获得了业务收益。这样,业务和研发人员有了统一的视图。


第二是稳:开发的过程会做这一些非功能性的设计,如:伸缩型设计,监控设计,资损防控设计;资损防控设计有三层:第1层是开发与测试,第2次是监控与核对,第3层是止损与追款。平稳,发布时支持灰度发布和预案回滚。比如做升级,收单要从单库切到多库,不能一刀切,需要按业务场景、用户、访问链路灰度,可以保证整个系统的平稳;如果一个系统上线后,如果出问题能马上实现回滚,对用户没有影响;


image.png


接下来讲关键子域架构设计,从收银台到交易,从支付服务到支付引擎,我们如何实现标准化和插件化。首先收银台分为三层:第1层是业务产品层;第2层是业务接入层,会做一些异常的适配,如不同的errorCode可以展示不同的异常界面,对用户体验比较好。第3是核心层,用户偏好与习惯、额度控制等。收银台是从一个简单的收银门面,千人一面,逐渐发展到千人千面,再到一人千面;就是不同的用户在不同场景下看到的收银台是不一样的,到同一个用户在不同场景下也可以进行个性化的适配;


image.png


这个是收单系统和交易系统的介绍:分成两部分,一个是公用的部分,就是我通用的上下层的依赖,比如支付引擎、会员、收银台、收费计费等,中间的收单服务层可以通过设计模式去封装,根据不同的业务请求,然后统一做收单路由到不同的插件去处理。这样即使有几十条产品线同时请求,我们也能同时响应,因为只需要改动一个插件即可;



image.png


基于这种插件式架构的设计思想,接下来的支付服务也是这样设计的。


支付引擎会整合银行相关的外部支付工具,以及零钱宝、任性付、信用支付、现金贷等内部支付工具,同时进行账户操作指令的封装(主账务核心和各个业务的微账务核心)。对我们来说,账务核心、支付工具群和支付外转接中心都是一个个插件,开发速度快;在具体的一个支付工具内部,也是插件式的;这样就完全可以实现大规模的并行研发;

相关文章
|
5月前
|
机器学习/深度学习 负载均衡 算法
【卡车和无人机协同配送路径优化】遗传算法求解利用一辆卡车和两架无人机配合,将小包裹递送给随机分布的客户,以使所有站点都由卡车或无人机递送一次后返回起始位置(中转站)研究(Matlab代码实现)
【卡车和无人机协同配送路径优化】遗传算法求解利用一辆卡车和两架无人机配合,将小包裹递送给随机分布的客户,以使所有站点都由卡车或无人机递送一次后返回起始位置(中转站)研究(Matlab代码实现)
348 7
|
存储 C语言 C++
数据结构基础详解(C语言) 顺序表:顺序表静态分配和动态分配增删改查基本操作的基本介绍及c语言代码实现
本文介绍了顺序表的定义及其在C/C++中的实现方法。顺序表通过连续存储空间实现线性表,使逻辑上相邻的元素在物理位置上也相邻。文章详细描述了静态分配与动态分配两种方式下的顺序表定义、初始化、插入、删除、查找等基本操作,并提供了具体代码示例。静态分配方式下顺序表的长度固定,而动态分配则可根据需求调整大小。此外,还总结了顺序表的优点,如随机访问效率高、存储密度大,以及缺点,如扩展不便和插入删除操作成本高等特点。
936 5
|
人工智能 监控 数据可视化
bashplotlib,一个有趣的 Python 数据可视化图形库
bashplotlib,一个有趣的 Python 数据可视化图形库
282 4
|
算法 前端开发 C++
C++基础知识(八:STL标准库 deque )
deque在C++的STL(Standard Template Library)中是一个非常强大的容器,它的全称是“Double-Ended Queue”,即双端队列。deque结合了数组和链表的优点,提供了在两端进行高效插入和删除操作的能力,同时保持了随机访问的特性。
577 1
|
弹性计算 持续交付 Docker
阿里云云效产品使用合集之如何部署到阿里云服务器上的 Windows Server 上的 IIS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
Apache 图形学
WebGL☀️Unity WebGL适配到各平台的教程
WebGL☀️Unity WebGL适配到各平台的教程
|
机器学习/深度学习 达摩院 前端开发
达摩院开源工业级说话人识别模型CAM++
近日,达摩院正式向公众开源工业级说话人识别通用模型CAM++,兼顾准确率和计算效率,训练labels类别达20万,每类含20~200条梅尔频谱特征。当前该模型已上线Modelscope魔搭社区,后续将陆续开源针对各场景优化的工业级模型。
2552 0
|
测试技术
支付系统核心架构设计思路(万能通用)
支付系统核心架构设计思路(万能通用)
2399 0
|
Java Python
如何设置代理ip服务器地址
如何设置代理ip服务器地址
619 0