万亿级交易量下的苏宁支付平台设计

微风

2019/03/24 发布于 技术 分类

文字内容
1. 万亿级交易量下的苏宁支付平台设计 QCon上海2018 全球软件开发大会 肖军@苏宁易购 2018.10.20
3. 自我介绍 架构演进的驱动与目标
4. 01、苏宁支付平台发展历程 02、总体架构设计 03、可视化作战指挥系统 04、全局架构如何优雅重构 05、经典实战案例 06、未来展望
5. 苏宁支付平台发展历程 01 Ø苏宁支付平台演进路线 Ø架构演进的驱动与目标
6. 苏宁支付平台演进路线 智慧化(3A) 场景化 行业解决方案 (一键付) 平台化 自主化 传统 架构 SOA 架构 3000笔/秒 100笔/秒 云计算 架构 20万笔/秒 天天交付 智能 支付引擎 业务敏捷 研发插件化 实时交付
7. 架构演进的驱动与目标 架构演进的驱动与目标 快速响应各业务线需求 业务增长,业务多元化 快 稳 稳定、可伸缩、安全 苏 宁 易 购 苏 宁 小 店 文 创 体 育 理 财 保 险 任 性 贷 任 性 付 便 民 生 活 商 户 合 作 高可用+可伸缩+低成本 +快速交付能力 大平台支撑 风 险 控 制 运 营 支 撑
8. 总体架构概述 02 Ø总体业务架构 Ø总体系统架构 Ø总体技术架构 Ø关键子域架构设计
9. 总体业务架构 多 渠 道 丰 富 应 用 PC互联网 门店或者新渠道 移动互联网 … 苏宁易购 火车票 水电煤 充值 还款 理财 任性付 … 开放平台 云 支 付 平 台 C端业务平台 线上支付 线下支付 收单服务 B端业务平台 …… ……. 行业支付 跨境支付 B端通用平台 …… …… 支付核心处理平台 外部支付工具 银行 统一支付处理 内部支付工具 零 钱 宝 任 性 付 余 额 账务指令处理中心 … 账务核心 风 险 控 制 体 系 运 营 支 撑 体 系
10. 总体系统架构 决策支持平台 运营支撑平台 快速服务交付 支付平台 基于标准的平 台业务服务交 付,使各应用 域可以并行、 独立研发。 开放 平台 平台 前置 网站 门户 各应用平台中心 统一规划与建模, 为平台外丰富的 应用场景提供了 充分的可重用业 务能力。 通用服务 应用服务 服务交付 客户信息与 管 权限管理 理 类 服务签约与 管理 处业 理务 类 数 类据 收单 支付工具 与管理 安全工具 与管理 资金 管理 账单 中心 业务数据集市 内部服务总线 营销引擎 事件集成 风控 服务 收银 台 业务 引擎 支付 引擎 业务 工具 服务 平台 支付 工具 服务 平台 报文集成 风控引擎 审计引擎 数据层 技术服务层 基础设施层 核心服务 网关服务 会员 金融 网关 支付/清 结算 沟通 网关 账务/会 计 业务 网关 服务集成 统一日志 基于标准的外部 服务引入,使平 台具备可快速扩 展性。 平台支付体系完 善,让支付能力 的重用不再复杂。 强核心,标准化, 易管控
11. 总体技术架构 持 续 交 付 中 间 件 基础 设施 测试 开发 发布 业务验收 研发环境统一管理 紫金大盘 应急故障大盘 β-地动仪 自动配置管理 资损防控设计 MTTR演练 自动生成工具集 伸缩性设计 监控设计 持续集成 多环境隔离 自动化测试 开发插件 模板生成工具 一键建站 代码检查 项目构建 前端 SRRING MVC 分布式 session 安全框架 可配置化 前端框架 聚合展现 动态视图 组件库 虚拟机 服务容器 SLA 体系 组件 集合 RSF 灰度 系统 故障隔离 SLA JBOSS 场景分析 数据源 管理 用户画像分析 统一资源管理 通用数据分析 数据 通讯 统一数据 源 分库分表中间件 mycat MYSQL 数据库 分布式缓存redis 搜索 Elastic Search 网络 分布式文件 系统 存储 苏宁IAAS平台 业务 还原 业务匹 配分析 优雅 回滚 kafka 消息 中心 配置中心 异步 队列 调度中心 数据平台
12. 关键子域架构设计:收银台域架构 外部业务 业务产品层 业务1 业务2 …………… 电商类 行业支付 ………. 其他接入 业务接入层 易购前置 分流组件 标准充值 嵌入式接入` 异常适配 标准支付 定制收银台 无订单接入 视图模型适配 渠道支付处理 定制沙箱 本地化插件 核心层 渠道匹配 用户偏好与 习惯 额度控制 基本视图渲 染 促销规则 订单管理 统一支付引擎 处理 多操作员 适配 支付工具管理 无订单渠道 管理
13. 关键子域架构设计:统一收单服务架构 门店/小店 商户 用户 开放平台 收单服务 线下收单接入 安全控制 线上收单接入 行业、商户接口适配 合法性预检 报文转换 收银台 接入日志记录 收单 接入库 收单路由 收单批量 批量调度 担保 交易 收单库 即时 到账 门店 消息 处理 流程 控制 流程引擎 支付引擎 境外 合法性 检查 一单 两付 乐拼 购 权限 控制 规则引擎 会员 其它 风险 控制 批量交易 处理 收单批量库 商户协议 权限 分润 计费 风控 数据服务
14. 关键子域架构设计:支付引擎架构 苏宁易购 …... 门店 支付收单 转账收单 境外收单 ……………. 统一支付业务路由 外部支付工 具处理中心 收银台 支 外 付 流部 转 入资 接 金 中 心 外 流部 出资 金 批 中处 心理 金融交换网关 中对 心账 支付引擎 PayService 内部支付工 具处理中心 账务操作指令处理中心 贷 特 账 主 核记 核殊 务 核账 心账 心账 处 心务 务 务 理 中 心 会计核心 零 支 付 钱 工 宝 具 群 任 性 付 任 性 贷 红 包 通用支付工具核心
15. 关键子域架构设计:金融交换网关架构 支 付 服 务 NETPAY 报文组装解析层 报文管理 协议适配器 HTTP/SOAP SOCKET/JMS 报文组装器 报文解析器 加签/验签 适配器层 渠道路由适配器 路由引擎 报文发送模块 报文接受模块 异常处理 机构 银行 公共事业缴费 其他 配 置 中 心
16. 可视化作战指挥系统 03 Ø可视化作战系统功能设计 Ø可视化作战系统架构设计
17. 可视化作战系统功能设计 可视化作战系统 研发可视化 聚焦统一目标下的交付全链路,全资源可视化 运行可视化 基于用户场景的调用链的架构分析引擎 管控可视化 组件自治,资源弹性调度
18. 可视化作战系统架构设计 一键 建站 模拟 测试 研发时 运行时 管控时 天天交付 稳定性分析平台 接口开放平台 自动化 测试 自动 部署 自动 运维 数据库 基础监控 故障分析 监控 报表 管理 基础设施监控 数据平台 mysql,oracle,db2,Redis 性能 分析 资损 分析 架构分析引擎 (依赖分析,变更感知) 容器和虚拟化 调用链 实时感知 容量 分析 监控事件 及报警 监控数据 同步agent 服务治理 安全分析 通用数据分析及模型 (系统画像SLA) 分布式计算平台 Hadoop,Hive,Spark,Storm 应急指挥沙盘 (组件自治) SLA管理 (故障自愈) 数据源 管理 统一资源变更管理 (故障注入) 弹性计算平台 系统管控平台
19. 全局架构如何优雅重构 04 Ø确定架构愿景 Ø识别关键问题 Ø制定解决方案 Ø设计架构演进路线 Ø如何做架构验证
20. 确定目标架构愿景 业务敏捷 20万笔/秒 99.99% 高可用 弹性治理
21. 识别关键问题 交付速度 低成本 Ø 基于标准的复用 Ø 并行、分布研发 Ø 新业务支持 Ø Ø Ø Ø 可伸缩 Ø Ø Ø Ø Ø 应用伸缩瓶颈 数据伸缩瓶颈 服务器伸缩瓶颈 网络伸缩瓶颈 IDC伸缩瓶颈 资损防控 单笔处理系统成本 产品运营效果评估 用户体验优化成本 高可用 Ø Ø Ø Ø DB单点/热点防护 自动化运维 服务自愈 应用级灾备能力
22. 关键问题解决方案:故障识别与应对 服务使用者 并发请求 并发控制 重复请求 幂等控制 超量请求 配额控制 请求积压 请求丢弃 并行计算 服务接入 处理中断 BUG 处理超时 流程、任务、决策 事务/分布事务 自检 领域仓储 资源 时间控制 领域对象 资源不可用 资源响应超时 故障源实时感知 时间控制 可视化 诊断&治理 服务代理 外部服务 通信中断 合理重试 服务不可用 外部服务响应超时 外部服务违背功能契约 时间控制
23. 关键问题解决方案:全网可伸缩 GTM LTM PAAS 服务通信 异步消息 Web访问 业务服务实例 业务服务实例 业务服务实例 业务服务实例 业务服务实例 业务服务实例 全网 可伸缩 开放API访问 PAAS 应用与服务容器 (RSF) 数据服务 通信服务 计算服务 IAAS 虚拟OS 映像 虚拟OS 映像 虚拟OS 映像 虚拟存 储单元 服务器 服务器 服务器 虚拟存 储单元 服务器 虚拟存 储单元 服务器 虚拟计算 单元 虚拟计算 单元
24. 关键问题解决方案:服务可伸缩 服务吞吐量 单资源吞吐量上限 响应时间 单数据库每秒事务数 服务 热点账户并发处理能力 海量数据计算能力 数据库总连接数 服务提供者 关键服务访问量 银行实时清算能力 慢SQL 银行批处理与对账 数据服务 通信服务 其它服务 其它服务 内部服务 外部服务 外部服务 外部服务 基础技术特定限制
25. 关键问题解决方案: 交易系统可伸缩 1 交易处 理服务 (写场景) 消费记录 查询服务 (读场景1) 交易 系统 消费 记录 系统 商户查询 商户 与对账 查询 (读场景2) 系统 分 库 分 表 中 间 件 影 子 库 表 支 持 核心交易数据 (分库/分表/failover) 2 N 1 消费记录数据 (分库分表) 灰 度 支 持 2 N 1 商户交易数据 (分库分表) 2 N 数据同 步中心
26. 关键问题解决方案:支付引擎可伸缩 X0系列用户 1.按用户水平拆分10组 X1系列用户 2.每组用户再随机分10份 payservice 0-0 payservice 0-1 payservice 00 payservice 0-2 payservice 0-… payservice 01 payservice 0-9 payservice 02 payservice 1-0 payservice 1-1 payservice 1-2 payservice 03 payservice 1-… payservice 1-9 payservice … 逻辑数 据源 物理数 据库 26
27. 关键问题解决方案:账务系统可伸缩 业务场景优化 大账户根因 l 大账户定义:单账户资金处理频繁、 时间点密集 l 基于等待的数据库排它锁 大账户 问题 l 分析业务发生驱动者 l 分析资金时效性 l 分析账户资金进出密集情况 l 分析账户资金进出时间点 l 解决方案瞄准如何去除排它锁 总体策略 l 分布式锁 l 缓冲记账 l 并发控制 l 异步化 l l l l l 业务资金进出隔日 收款方到账准时实化 业务错峰 收支账户分离 拆分子账户 l 中间账户:只登记账户明细流水,不 更新余额,日终进行汇总轧差,一次 性更新 l 待清算账户:采用单边记账方式 l 特定业务收费账户:异步分段补账 账户处理优化 账务系统处理
28. 设计架构演进路线 总体路线(专注主线,边界优先) 基线全局架构 指导 目标全局架构 更新 年度目标与路线图(顺势而为:与业务发展路线合拍) 步步为营,透明化关键节点工作量与ROI 更新 指导 季度架构 季度架构 季度架构 季度架构 季度架构重构 评价 季度架构重构 评价 季度架构重构 评价 季度架构重构 评价
29. 设计架构演进路线-如何控制重构风险 项目中 项目前 消除风险,获得支持 Ø 确定项目价值与范围 短,平,快 Ø 严格控制项目范围扩张, Ø 明确业务影响 Rebase不可避免的业务需 Ø 获得相关干系人支持 求 Ø 架构概念验证原型 Ø 尽量创造“业务需求真空期” Ø 将项目执行组织成迭代,专 注主线,步步为营 项目发布 稳定,用户体验连续 Ø 基于场景的立体化监控与 报警 Ø 经过演练的应急预案 Ø 快速回滚和降级 Ø 阶段性复盘,聚焦目标
30. 架构验证策略 高 可 用 场景 服务 约束 苏 宁 易 购 收 银 台 可隔离 可 伸 缩 苏 宁 小 店 会 员 研 发 速 度 运 维 成 本 PP 体 育 促 销 可配置 迁 移 成 本 主业务场景推演 架构验证 零 售 云 文 创 支 付 收 单 C 店 平 台 认 证 中 心 可测试 支 付 服 务 可监控 新业务场景推演 猫 宁 店 物 流 账 务 核 心 开 放 平 台 清 结 算 可回滚 对 账 中 心 苏 宁 影 城 支 付 决 策 可复用 线 下 门 店 入 款 渠 道 无单点 金 融 网 关 乐 拼 购 风 险 控 制 无状态
31. 经典实战案例 05 Ø两周内建成立体化监控 Ø全链路压测演练 Ø异地多活 Ø热点防护 Ø从100tps到20万tps实践 Ø故障自愈
32. 两周建成立体化监控体系 统一日志模型 日志模型化 核心链路 SLA建模 指标简单化 监控工具化 自建监控系统 数据可视化 管控全网化 规则报警 一键定位 洪峰控制 业务降级 系统全景视图
33. 全链路压测 生产 全链路压测 生产憋单压测 问题: 线下压测 l 测试环境和生产环境配置不一致 l 测试数据和生产数据结构不一致 l 用户访问路径不一致 解决方案 l 业务&&系统还原 l 流量隔离&&故障隔离 l 测试资源统一管理 l 流量预测与容量规划
34. 异地多活 支付核心链路 failover 最小高可用支付系统 稻草系统 FAILOVER 线 上 线 下 全 场 景 应对方案 问题 l 消息同步服务化 l 跨机房问题 l 单元化 l 依赖服务部署与治理 l 依赖服务做多活部署 l 研发体系配套改造 l 研发体系的配套支持 l 故障切换的工具支持 l 机房选址 l 容灾能力:分钟级,分层
35. 热点防护 热点上下游 传递分析 故障隔离 限流 业务场景 优化 离线 热点分析 热点 缓存结构 实时 热点分析 热点源 感知 热点拆分 发现热点 热点诊断 决策支持 基础支撑 统一日志 分布式资源 管理框架 热点治理 应用级trace 和dump 服务 SLA控制 事务控制 业务规则 决策中心 应用工具 紫金大盘 基础数据平台 β地动仪
36. 从100tps到20万tps实践 总体架构优化 支 付 核 心 标 准 化 金 融 网 关 配 置 化 收 银 台 个 性 化 支 付 链 路 异 步 化 无 单 点 设 计 应用层优化 内 部 服 务 治 理 缩 短 调 用 链 线 程 池 调 优 队 列 优 化 数据层优化 短 事 务 / 去 事 务 数 据 近 端 S Q L 优 化 D B 配 置 参 数 优 化 事 务 与 锁 优 化 闭环验证中心 验证大屏 冷 热 隔 离 读 写 分 离 分 库 分 表 灰度 方案 监控决策中心 基础技术平台优化 基 础 容 器 优 化 RSF分布式服务框架优化 分库分表组件优化 缓存优化 消息组件 调度组件优化 更换SSD 网络专线 堆内存与GC优化 本地磁盘优化 移动端 应急管控 外部 依赖 优化 应 用 服 务 监 控 内 部 调 用 链 监 控 中 间 件 监 控 D A O 层 监 控 基 础 设 施 层 监 控 外 部 依 赖 瓶 颈 感 知
37. 服务内部瓶颈点可视化诊断 NetPay 幂等性控制(1) 初始化正向表(2) 前端初始化请求消息(6) 初始化内部表(2) 路由采集请求消息(3) NetPay快捷支付 数据库 22 适配端转换请求消息(4) 更新响应消息(8) 批量处理退款任务(1) 初始化MessageSpecial表(2) 更新流水表 更新反向表(2) SQL4 更新MessageSpecial表(2) SQL6 更新采集表(1) EPPSCBP退款 数据交换还原退款请求 (2) 请求适配系统发起退款 (7) 更新业务部为处理中(1) 更新业务表(4) 回执处理 完成数据交换(2) SQL3 SQL5 退款并控制(2) 18 SQL2 更新内部表(2) EPPSCBP 数据库 SQL1 更新正向表(1) 更新订单处理中(1) SQL7 SQL8 SQL9 ………………..
38. 故障自愈 故障源感知 任性付 任性贷 系统变更 业务指标 零钱宝 收银台 收单 智能诊断引擎 系统指标 基础组件 服务 修复 故障 定级 容量 预测 操作失误 拓扑 获取 链路 追踪 WAF应急预案 执行引擎 负载均衡应急 预案执行引擎 异常 检测 基线 管理 RSF应急预案 执行引擎 SCM应急预案 执行引擎 机器 深度学习 模型 参数训练 TCC应急预案 执行引擎 DB应急预案执 行引擎 智能 规则引擎 智能 知识库 渠道 基础指标 影响面实时大屏 链路 修复 场景 修复 突发 业务量 单点瓶颈 支付服务 故障治理 安全攻击 技术基础组件修复 数据异常比对(业务流&&资金流)
39. 未来展望 06 Ø全网可视化作战沙盘 Ø机器人巡检
40. 全网可视化作战沙盘
41. 机器人巡检