支付宝架构与技术
异步确保型
处理交易通知 (Business Action)
最大努力 通知型
红包
客户账
收费
会计账
资金订单
通知数据
柔性事务: TCC型业务服务
Try: 尝试执行业务 完成所有业务检查(一致性) 预留必须业务资源(准隔离性)
tryX
confirmX
cancelX
Confirm:确讣执行业务
真正执行业务
适用范围
强隔离性、严格一致性要求的业务活动 适用亍执行时间较短的业务
数据库
消息系统
消息发送/发布方
消息接收/订阅方
TCP UDP HTTP SOAP Hessian SMTP …
消息持久 消息状态 元数据 事务管理 故障恢复
消息接收器
流入路由器
拦截器
流入消息 转换器
内部服务 组件调用
组件容器
消息发送器 流出消息
数据库
A
启动业务活动 登记业务操作
3. confirmX成功
提交/回滚业务活动
业务活动 管理器
tryY
从
业
confirmY
活动日志 4. confirmY成功
务 服
cancelY 务
B
实现
一个完整的业务活动由一个主业务服务与 若干从业务服务组成 主业务服务负责发起幵完成整个业务活动 从业务服务提供TCC型业务操作 业务活动管理器控制业务活动的一致性, 它登记业务活动中的操作,幵在业务活动提 交 时确讣所有的TCC型操作的confirm操作, 在业务活动取消时调用所有TCC型操作的 cancel操作
渠任文实 道务件时 管调处处 理度理理
同步清算处理
支付指令
清算指令
消息 系统
异步清算处理 实时记账
文件
网银接入银卡通接入行往来
银企直联
其它银行 接入方式…
账务系统
核算中心
会计系统
异步准实时登记入账流水 消息 系统
流水登记子系统 入账流水登记
核算系统
核算处理子系统 流水核算处理
核算报表
银行流水登记 系统
转换器 流出路由器
拦截器
消息系统: 消息事务模式(1)
事务域
业务处理服务 主 动 方
业务数据 消息数据
实时消息服务
消息恢复系统
实现
业务活动的主动方,在完成业务处理的 同一个本地事务中,记彔消息数据
业务处理事务提交后、通过实时消息服 务通知业务被动方,实时通知成功后删除 消息数据
消息恢复系统定期找到未成功发送的消 息,交给实时消息服务补发送
实时记账
账务查询
报表
账务系统
记账子系统 账务交易流水
记账凭证
分户账户 (外)
分彔子系统 分户日余额
分户账户(内)
会计系统
日切
日终子系统 科目汇总
日结 外部分户历叱日余额
会计分彔流水
内部分户历叱日余额
消息 系统
异步准实时登记会计分录
支付清算
业务系统
收银台
支付请求
结果回调
支付系统
清算系统
充 提 充内 值 现 退转 协 协 协协 议 议 议议
4. 架构管理
(1) 企业架构模型 (2) 架构文档库 (3) 系统治理
架构概况
平衡稳与快 系统架构 典型处理模式
平衡稳与快
业务增长与创新
快
稳
安全、稳定、可伸缩
构建稳定的基础业务服务,通 过服务重用实现业务敏捷,保 障核心安全稳定。
系统架构概况
渠道
API
个人版
企业版
无线
语音
行业应用平台
产品 集团应用
与阿里金融交流
——支付宝架构与技术
支付宝(中国)网络技术有限公司 2010年3月3日
交流大纲
1. 架构概况
(1) 平衡稳与快 (2) 系统架构 (3) 典型处理模式
2. 关键业务系统
(1) 账务会计 (2) 支付清算 (3) 核算中心 (4) 交易
3. 应对技术挑战
(1) 柔性事务 (2) 异步处理 (3) 数据分布 (4) 数据缓存
商户查询与对账 (读场景2)
商户查询系统
商户/平台商交易数据 (分表并分库)
1
2
n3
数据缓存
业务系统
业务应用 会员服务客户端
内部二级缓存
查询/更新
会员信息系统
会员对象缓存
12
n
会员数据库
查询时,先读缓存 更新时,同步使缓存对象失效
支付宝技术产品线
架构管理
企业架构模型 架构文档库 系统治理
活动日志数据
交易处理 (主控业务活动)
交易
处理红包 (Business Action)
两阶段型
处理客户账 (Business Action)
两阶段型
处理收费 (Business Action)
两阶段型
处理会计分彔 (Business Action)
异步确保型
处理资金订单 (Business Action)
业务处理服务在业务事务提交后,向实 时消息服务确讣发送。只有在得到确讣发 送指令后,实时消息服务才真正发送消息
业务处理服务在业务事务回滚后,向实 时消息服务取消发送
消息状态确讣系统定期找到未确讣发送 或回滚发送的消息,向业务处理服务询问 消息状态,业务处理服务根据消息ID或消 息内容确定该消息是否有效
不作任何业务检查
只使用Try阶段预留的业务资源
Confirm操作满足幂等性
业务服务
Cancel: 取消执行业务 释放Try阶段预留的业务资源 Cancel操作满足幂等性
柔性事务: TCC服务事务协调模式
1. tryX成功
tryX
从
业
confirmX 务
服
cancelX
务
主业务服务
数据库 2. tryY成功
消息 系统
异步交易事件处理
积分 风险核查
应对技术挑战
柔性事务 异步处理 数据分布 数据缓存
柔性事务: 挑战
SOA
• 分布的业务 • 分布的数据 • 海量的访问
支付
?
• 绝对资金安全 • 低宕机率
• 低延时
柔性事务: 业务活动
柔性事务: 业务活动举例
交易支付 (Business Activity)
架构动态演进
当前业务 对齐
当前应用
目标业务 对齐
目标应用
项目
项目 路线图
项目
基线企业架构
目标企业架构
企业架构
企业架构模型
架构文档库
系统治理
谢谢 !
个人业务平台
合作伙伴接入
航传 旅统
B2B B2C
新 行 业
生
账
安
会
淘
活
户
全
员
宝
助
管
讣
运
手
理
证
营
管
银行接入
公共服务
理
平
网银
登彔与身份 收银台
交易
收费
安全
…
台
卡通
通
信 网
银企直联
关
网点
…
资金处理平台
基础业务平台 客户信息平台
支
账
核
付
务
算
清
会
中
算
计
心
会 员 信 息
商 户 信 息
产 品 账
信 用
核 心 管 控
实时处理网关
被
动
方
业务处理服务
事
务
域
数据库
消息系统: 消息事务模式(2)
事务域
业务处理服务
业务数据
请 确取 求 讣消 发 发发 送 送送
询问消息状态
消息状态确讣系统
事务域
实时消息服务
消息数据
实现
业务处理服务在业务事务提交前,向实 时消息服务请求发送消息,实时消息服务 只记彔消息数据,而不真正发送
典型处理模式
互联网商户
访问渠道
API平台
产品
订单处理
公共服务
收银台
交易
收费
营销
风控
基础业务
支付处理
银行接入
清算处理 账务会计 通信前置
客户信息
银行支付清算网
关键业务系统
账务会计 支付清算 核算中心 交易
资金处理平台
收 银 台
业 务
支
系
统
付
账务 清算
会计 核算
通信前置
银行网关
账务会计
业务系统
发送消息
消息恢复系统
数据分布
y
垂 直 拆 分 按 业 务 类 型 拆 分
)
(
z
x
数据复制/读写分离
数据分布: 交易数据拆分
交易处理服务 (写场景)
消费记录查询服务 (读场景1)
交易系统
核心交易数据 (分表并分库)
1
消费记录系统
消费记录数据 (分表并分库)
1
2
2
n1
n2
发布数据变更
消息 系统
订阅数据变更
银行流水登记
流水归档处理 银存待结转统计
交易
业业务务系系统统
担保交易 即时到账交易 货到付款交易
交易系统
交易引擎
商户通知 消费记彔
数流规超 据程则时 持引引处 久擎擎理
支付系统 红包系统
资 金 处 理
产 品 账 接 入
收 费 接 入
商 户 通 知