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