// - 所有JDBC源码分析文章列表 // - JDBC中文注释源码地址 您对源码的疑问我们会认真回复每条留言。即使您不知道如何阅读源代码,也可以寻求帮助。接收新源代码分析文章的实时通知。大约一周更新一次。认真交流源码的微信群。
支付永远是一个公司的核心领域,因为它是一个具有交易属性的公司的命脉。那么,支付系统是什么样子的,它是如何交互的?
抛开拥有支付牌照的金融公司的支付架构,以下几个环节和系统组件基本满足绝大多数支付场景。
其实整个系统可以看成两大系统:交易核心+支付核心。交易系统与业务场景和底层支付相关联,而支付系统则完成从调用支付工具到对账结算的一系列相关操作。我们来看看每个系统的核心组件和交互。
第一部分 支付系统概述 核心系统交互
商业地图
第二部分 核心系统分析 交易核心
交易核心将公司业务系统与底层支付关联起来,让业务系统专注于业务而不关心底层支付。
交易核心
基本交易类型抽象
多表聚合&订单关联
支付核心
支付核心主要负责将多种支付类型抽象为充值、提现、退款、转账四种支付形式。同时,他还负责整合多种支付工具、安排支付指令等。
支付核心概述
支付行为编排
其目的是实现插件式开发以及支付规则可配置的灵活开发方式。
异常处理
异常处理包括重复支付、部分支付、金额不一致等异常场景。
通道网关
基金会计
零件服务治理平台统一上下文
确定了系统边界,拆分了业务模型后,整个支付平台被拆分为几十个服务。如何保证服务之间传递的业务信息不丢失是我们需要考虑的问题。平台统一上下文的要素信息(业务唯一识别码)贯穿整个支付平台链路,就是用来解决这个问题的。
数据一致性治理
大型支付公司内部有非常严格、完整的数据一致性解决方案,比如采用分布式事务,侵入性非常大。以牺牲开发效率为代价来提高数据稳定性是非常有必要的。对于商业公司来说,如果不采用分布式事务,他们有什么策略呢?
CAS验证

幂等和异常补偿
和解
近实时对账
数据库分割
异步化
支付是整个交易环节的核心环节。那么,如何平衡支付系统的稳定性和执行效率呢?它是异步的。
消息异步
外部支付调用异步化
在对外支付中,往往需要服务商与第三方支付进行交互,获取预付款凭证,如上图所示。
在这种同步调用的情况下,由于需要跨越外部网络,因此响应RT会很长,可能会跨越数秒。由于是同步调用,所以会阻塞整个支付环节。一旦RT很长、QPS比较大,就会导致服务整体被卡住,甚至可能出现拒绝服务的情况。
因此,可以将获取凭证的操作进行拆分,通过独立的网关通道前端服务来异步获取凭证。可以从前端网关获取内部凭证,然后前端网关可以异步调用第三方。
异步并行化
基金会计异步
热门账户账户分开处理
会计交易的细分
第四部分 生产实践性能压力测试
构建压力测试模型来模拟现实生活场景;压测数据录入影子数据库,正常业务不受影响;单机性能和集中环节不容忽视;确定了系统稳定性和容量比。 。 。
稳定治理
核心环节分离
服务依赖降级