于振华 北京银行全栈式Scale out系统架构建设实践

9. 云计算 人工智能 区块链 服务治理 GW 分布式 虚拟现实 运营管理 交易处理 风险防控
10. VS 应用分布式 l 分布式数据库的一致性与可用性矛盾 l 微服务架构的敏捷开发与复杂运维矛盾 数据分布式
11. 标准化交易组 与 分布式事务数据库评测指标 对银行现有系统运行中的交易进行分析之后, 按照发生频度 、使用范 围选取典 型的交易 场景,利 用开源框架, 把交易从 封闭系统 迁移到开 放平台, 形成“标准化 交易组” 。针对银 行实际场 景,对数 据库进行相同 规模、相 同逻辑、 相同粒度 的访问、 操作。 开启转账 事务 登记簿插入意 向转账记录 检验借方信 息是否合法 更新登记 簿流水 插入流水记 录借方信息 插入流水记 录贷方信息 断点 A 更新登记 检验贷方信 簿流水 息是否合法 更新登记 簿流水 借方 更新登记 贷方 更新登记 提交 扣款 簿流水 扣款 簿流水 事务 断点 B 断点 C 我行自主提出了一套“分布式事务 数据库评测指标”,将 分布式 事务 数据 库能 力进 行了分 解, 成为 一项 项具 体的指 标, 使得评测标准更加具体化,评测结果更加客观化。 l 读写分离 l 负载均衡 l 强一致性 l 数据重分 布 l 平台支持 TPS 指标 l SQL兼容/复杂 兼容性 语法支持 l 在线扩容 性能 测试 功能 测试 数据库 支持 l 查询优化 l 透明性 l 批处理性能 l 异构数据库传输 算法 性能 个性化 功能 l 安装升级 l 运维管理 可靠性 l 高可用 l 容错机制 l 超时处理 安全 备份 l 角色划分 l 系统分析 l 主备同步 l 异地灾备 l 备份/恢复支持
13. Raft组 计算层、管理层 数据分片1 数据分片2 数据分片3 …… 数据分片n 存储实例 数据分片1 数据分片2 数据分片3 …… 数据分片n 存储实例 数据分片1 数据分片2 数据分片3 …… 同城 网络 数据分片n 存储实例 数据分片1 数据分片2 数据分片3 …… 数据分片n 存储实例 数据分片1 数据分片2 数据分片3 跨 …… 城 网 数据分片n 络 存储实例 leader副本集群 跨城网络 无leader副本集群 北京IDC1—两副本 北京IDC2—两副本 西安IDC3—一副本 • 北京ßà西安延时为17ms 1.2ms 5ms • 采用此种部署模式的SQL平均延时为 ,.95延时为 左右
14. 多副本强一致性协议保障可靠数据持续在线 主副本选举(带*号副本) 成员变更 日志复制 副本1* 副本2 存储引擎1 副本3 副本1 存储引擎2 副本2* 副本3 存储引擎3 副本1 副本2 存储引擎4 副本3* 存储引擎5 • 条件:任何分布式NewSQL云数据库中的数据变更需要同步更新到多数派副本中,才认为操作成功 • 更新存储引擎1中的主副本1数据,只有另外两个副本1有一个同步更新,才认为操作成功 • 结论:多数派中保存最新数据,只要多数派存活,即可对外服务
15. 4. 将副本1服 务器1上删除 副本1 副本2 副本3 服务器1 2. 将副本1的leader 迁移到服务器2 服务器2 副本1* 副本2 1. 新增服务器5加入 NewSQL云数据库网络 副本1 3. 复制副本1 到服务器5 新增服务器5 副本2 副本3 服务器3 副本1 副本3 服务器4 • 副本:副本可以理解为全量数据的一份子数据,图中示例为三副本模式 • 图中副本1+副本2+副本3为一份全量数据 • 例如全量数据为record1~record6,其中一种划分模式即可为: • 副本1(record1-record2),副本2(record3-record4),副本3(record5-record6) • 主副本:提供对外服务的副本
16. 传统分布式系统事务 分布式事务 提交 1.提交数据 分布式事务 协调中心 2.数据路由 分布式事务 执行 分布式事务 执行 3.数据确认 3.数据确认 迈向金融级 分布式存储 分布式存储 分布式NewSQL数据库事务 分布式事 务提交 1.处理主锁记录 1.主锁声明 2.预写数据 data1 2.处理副锁记录 加锁 版本 控制 1.副锁声明 2.预写数据 3.主锁解锁 原子 操作 主锁解锁前 data2 副本同步/异步 解锁 4.副锁解锁 主锁解锁后 解锁 版本 控制 数据实质变化
17. 键值 余额:数据 余额:锁信息 余额:版本 借方 TS 1: 10 账户 TS 2: 贷方 TS 1: 2 账户 TS 2: TS 1: TS 2: TS 1: TS 2: 1 TS 1: TS 2: Data@TS1 TS 1: TS 2: Data@TS1 处理主锁记录 键值 余额:数据 余额:锁信息 余额:版本 借方 TS 1: 10 账户 TS 2: TS 3: 5 TS 1: TS 2: TS3:Primary TS 1: TS 2: Data@TS1 TS3: 贷方 TS 1: 2 账户 TS 2: TS 1: TS 2: 2 TS 1: TS 2: Data@TS1 处理副锁记录 键值 余额:数据 余额:锁信息 余额:版本 借方 TS 1: 10 账户 TS 2: TS 3: 5 TS 1: TS 2: TS 3: Primary TS 1: TS 2: Data@TS1 TS 3: 贷方 TS 1: 2 账户 TS 2: TS 3: 7 TS 1: TS 2: TS 3: Primary@R1 TS 1: TS 2: Data@TS1 TS 3: 主锁解锁 3 键值 借方 账户 贷方 账户 余额:数据 TS 1: 10 TS 2: TS 3: 5 TS 4: TS 1:2 TS 2: TS 3: 7 TS 4: 余额:锁信息 TS 1: TS 2: TS 3: TS 4: TS 1: TS 2: TS 3: TS 4: 余额:版本 TS 1: TS 2: Data@TS1 TS 3: TS 4: Data@TS3 TS 1: TS 2: Data@TS1 TS 3: TS 4: Data@TS3 4 副锁解锁 键值 借方 账户 贷方 账户 余额:数据 TS 1: 10 TS 2: TS 3: 5 TS 4: TS 1: 2 TS 2: TS 3: 7 余额:锁信息 TS 1: TS 2: TS 3: TS 4: TS 1: TS 2: TS 3: Primary@R1 余额:版本 TS 1: TS 2: Data@TS1 TS 3: TS 4: Data@TS3 TS 1: TS 2: Data@TS1 TS 3:
18. 网联清算平台 从集群 数据库SQL引擎 SQL 存储引擎 集群调度器 同步队列 binlog F5 北京IDC1 数据库SQL引擎 数据库SQL引擎 SQL SQL 存储引擎 存储引擎 存储引擎 集群调度器 集群调度器 …… 银联无卡支付平台 DNS F5 北京IDC2 数据库SQL引擎 数据库SQL引擎 SQL SQL 存储引擎 存储引擎 存储引擎 集群调度器 集群调度器 北京IDC1 北京IDC2 F5 西安IDC3 数据库SQL引擎 数据库SQL引擎 SQL SQL 存储引擎 存储引擎 存储引擎 跨地区的 分布式存储集群 集群调度器 跨地区的 分布式调度集群 西安IDC
19. IDC 数据库组件 计算层实例(X86) 调度管理层实例(X86) 存储层实例(X86) 北京IDC1 2 2 4 北京IDC2 2 2 4 西安IDC 1 1 2
20. 3000*3 = 9000 服务数量越来越多 服务调用关系越来越复杂 服务问题难定位 服务性能瓶颈难分析
21. 零侵入 高性能 简单、易用 扩展Dapper 基于Google的分布式追踪模型Dapper实现 时间轴 前端请求 (no parent id) span id:1 后端调用1 parent id:1 span id:2 后端调用2 parent id:1 span id:3 同一 trace id : 100 调用子服务1 parent id:3 span id:4 调用子服务2 parent id:3 span id:5 0 10 20 30 40 50 调用子服务1 trace id = 100 parent id = 3, span id = 4 An n o t at io n s 时间轴 客户端 服务端 < Start> Client Send Server Recv “ foo” Client Recv Server Send < End> 记录参数 Ø Cs:客户端发起请求的时间 Ø Cr:客户端收到处理完请求的时间 Ø Ss:服务端处理完逻辑的时间 Ø Sr:服务端收到调用端请求的时间 Ø Cr-Cs:客户端调用时间 Ø Sr-Ss:服务端处理时间
23. 可视化展示 时序数据库 信息网关 SQL引擎 集群管理器 存储引擎 多方式信息反馈保障安全运营 信息分析器 智能分析器 邮件/短信 计算、存储优化 数据结构优化 智能分析助力高效运行
25. NO-19 NO-20 …… NO-N 问题编号 问题描述 应用适配Repeatable Read 执行计划未匹配索引,应用Hint 热点数据需要散列或应用缓存 微服务事务粒度过细,影响DB性能
27. 服务维护 保障体系 接入层 业务 中台 (SaaS) 能力网关 微服务 权益 中心 产品 中心 客户 中心 商户 中心 开放平台 传统业务系统 E 理财 支付 系统 系统 S B 核心 核心 用户 账户 Dapper + TraceID + 可视化 技术 平台 (PaaS) IaaS 全局事 务框架 微服务 框架 日志框 架 分布式 消息 分布式 缓存 分布式NewSQL数据库 计算 网络 存储 应用服务 服务 管理 大 数 据 计算层 平 台 图计算 框架 多租户 数据源层 网络 探针 应用服务 规则 引擎 深 度 模型 学 计算层 训练 习 数据源层 数据 分发 规则 引擎 图计算 引擎 离线 引擎 数据 归档 服务 管理 模型 计算 数据 采集 模型训练效率提升8倍 93228次反欺诈拒绝 200万笔核心金融业务/日 运营效率提升50%
29. 01 06 05 02 03 04