来源:鑫智奖·2024第五届金融机构数智化转型优秀案例评选

获奖单位:贵州农信

荣获奖项:专家好评TOP10优秀案例奖

一、项目背景及目标

贵州农信关键业务系统具备业务吞吐量高,数据体量大等特性,随着各种新业务场景的出现和业务交易量的迅速增加,国外商业数据库的传统集中式架构面临着较大的挑战,如在业务的高峰时段偶发出现数据库的吞吐量低,机器负载高,业务响应缓慢等问题,且数据节点横向扩容难度较大,已无法满足当前业务的发展需求。综上考虑,贵州农信关键业务系统数据库需实现由集中式架构向分布式架构的转型,借助国产分布式数据库高弹性、高可靠、高性能的关键特性,解决传统集中式数据库性能不足的问题。

我社于2021年开展国产分布式数据库的研究与实践,并基于我社“高并发、高吞吐、高增长”的行业应用系统,对国内主流分布式数据库从功能层和性能层进行充分的对比测试,测试发现,国内分布式数据库均可满足该系统联机交易场景和批处理场景的性能要求,但在功能架构上大部分分布式数据库采用主从分片架构,须业务系统进行复杂的分片设计,开发设计难度较高,且分布式数据库二阶段提交特性,在极端的场景下,如网路抖动异常,系统资源负载异常等,可能带来数据不一致性风险。为快速实现国产分布式数据库替代工作,降低业务改造周期,确保我社关键数据的完整性和一致性,结合金乌数据库数据节点无状态特性、事务一阶段提交机制所带来的业务改造周期短,数据强一致性等优势,最终我社选型以金乌数据库承载我社关键业务系统。

期间我社与金乌国产分布式数据库厂商深度合作,充分发挥出国产分布式数据库高并发响应、高服务连续性保障、弹性灵活部署等特性,成功完成了关键业务系统基于分布式数据库的建设,并在适配过程中和厂商一起,解决了分布式数据库事务节点主从切换效率较低、数据合并效率较慢、复杂交易响应延迟过高等问题,优化了数据库整体部署架构,解决了分布式数据库中事务节点、计算节点、数据节点间的性能瓶颈冲突。同时结合我社关键业务系统特性共同研发了一款数据库适配审核工具,并引入基于TOC方法论的SQL优化流程和工具,大大提高了我社业务系统改造适配效率,并提升了SQL代码质量。形成了一套可复制、可借鉴的分布式数据库优化标准体系,相关适配改造经验可供中小金融机构进行交流、借鉴。

目前我社基于金乌数据库完成了18套业务系统改造,其中包括行业应用、超网、统一支付、柜面、核心信贷等关键业务系统,上线运行至今未出现明显性能隐患。

二、创新点

(一)攻克分布式数据库在金融复杂交易场景中的技术难题

对于金融复杂交易场景下,当发起大量高并发的数据库请求时,大表关联查询和频繁更新两个场景很容易出现性能瓶颈,采用应用端预处理和数据库分布式读写设计相结合的技术方案,解决了分布式数据库在大表联表查询、更新速度等方面的挑战,提升了分布式数据库在统计分析型业务场景中的适用能力。应用通过微服务和单元化架构,在应用层实现了数据的拆分,同时,通过拆分复杂SQL为多条简单SQL,批量绑定参数,多批次提交,增加互斥逻辑,充分利用应用系统和分布式数据库的多线程处理能力,确保业务系统在高并发处理和批处理场景中的稳定运行。

打开网易新闻 查看更多图片

(二)TOC方法论在数据库优化中的应用

TOC认为任何系统至少存在着一个制约因素/瓶颈,否则它就可能有无限的产出。因此要提高一个系统的产出,必须要打破系统的瓶颈。如何针对不同数据库,识别出其底层内核架构,实现对SQL整个环路的监控,并找出瓶颈点,是实现基于TOC方法论在SQL优化应用上的难点。

由于各厂家数据库产品较为封闭,虽提供了较为全面的监控软件,但是往往监控软件只能初步排查到慢的SQL语句,多是建议在SQL层进行优化解决,对于数据库内核级堵塞的问题很难定位。通过与金乌数据库厂商深入合作,从源码级深度挖掘其在SQL链路各环节上的制约因素,通过监控工具和底层分析工具,实现了SQL语句的全链路监控,以便快速发现SQL变慢的根因。在国产分布式数据库替代过程中,一共发现了254个制约因子,在提升SQL代码同时,也帮助了数据库厂商优化其数据库产品。

打开网易新闻 查看更多图片

(三)研发数据库适配审核工具加速数据库改造效率

我社国产化数据库迁移改造过程中,各系统源端数据库种类众多涵盖MYSQL、DB2、ORACLE等,且传统数据库与金乌数据库在对象和语法特性上存在一定差异。为满足最小成本改造和平滑适配目标,我社结合金乌数据库对象和语法特性,并深入挖掘差异点,编制了《金乌分布式数据库开发设计规范》,并基于规范与金乌数据库厂商共同研发了一套集数据库对象诊断、数据类型支持、SQL语法优化等一体化的开发适配工具,该工具能快速定位数据库接口适配、数据类型转换、语法差异兼容、函数差异兼容、语法不规范设计等问题,为开发人员在适配数据库过程中节约了大量的人力物力,提升了我社各业务系统对象设计规范性及SQL代码质量。

打开网易新闻 查看更多图片

(四)为关键业务系统提供强一致性的数据保障

金乌是原生分布式数据库,其特有的架构主要是将数据事务(增量数据)处理集中在TG进行处理,处理后的数据(静态数据)转存DG上,独创动静数据分离的架构,其具备的优势有:一是消除分布式事务,因为绝大多数场景单个TG就能满足系统的事务处理,可以杜绝分布式事务,保障事务强一致性;二是解决高可用问题,因为除了TG节点(数据写)外其他节点均为无状态或者是静态数据(数据只读),所以只需对事务处理节点TG实现Paxos协议保证高可靠即可,因此故障恢复非常快速(同城网络延迟条件下RTO<10秒,RPO=0);三是高性能保障,数据库出现最大的资源瓶颈通常是数据量的累积导致的IO瓶颈,而一般业务处理所涉及的数据读写是8:2的比例,由于静态数据是不变化,任何一个副本都可以并行读取,可以大幅提升IO的性能。并且在IO存现瓶颈时候,可以快速扩容,将存量数据分摊到新扩容的磁盘中,所以集群的数据量累积也没有性能下降的问题。而如果其他分布式数据库产品动态和静态数据并没有分离,将造成大量的两阶段事务的比例,造成系统的不稳定和不可用,同时无法解决强一致性要求下的IO高并发读瓶颈(只能读一个主副本数据),同时也浪费资源(从副本数据节点不能读,只能被动作为数据同步)。

三、项目技术方案

(一)金乌分布式数据库技术架构

通过对国内外集中式和分布式数据库的选型适配以及稳定性测试比对,发现金乌分布式数据库相较其他数据库产品在联机事务处理能力和数据一致性保障能力上具备一定优势。金乌数据库架构由四种模块组成,主体分为CG节点(计算节点)、MG节点(管理节点)、TG节点(事务节点)和DG节点(数据节点),其中CG节点和DG节点属于无状态组件,MG节点和TG节点基于PAXOS协议完成事务处理和数据管理。各模块承担不同的功能,以服务形式部署,都能水平扩展,相比集中式数据库,金乌数据库各模块间允许独立部署或交叉部署,支持灵活扩展部分模块,相比基于MySQL二次开发的数据库,金乌数据库代码完全研发,自主可控。

打开网易新闻 查看更多图片

(二)主中心部署架构及容灾双活架构技术方案

我社已上线的关键业务系统,如行业应用、信贷核算系统等,通过大量性能测试,针对批处理性能要求较高的系统采用事务节点分离的3+X部署架构,单独划分3台服务器用于承载金乌数据库事务管理节点TG和集群管理节点MG,不仅保证了分布式数据库基于PAXSO协议的高可用性,且由于TG节点承载了大量事务处理请求,是压力最大的功能模块,独立部署后大大提高了业务性能,相较TG/MG/CG/DG原混合部署模式,提高了约1小时批处理效率。关键业务系统上线后,我社基于金乌数据库自研反向同步工具CDC,确保异构数据库间的本地容灾,并双轨运行3个月,紧急情况,可实现业务系统的快速回退。另基于金乌分布式数据库集群双活特性,构建了关键业务系统的机房级容灾,可达到RPO=0,RTO<60S。

打开网易新闻 查看更多图片

(三)事务处理方案

结合金乌数据库事务处理机制,我社关键业务系统在事务设计方案上,无需进行复杂的分布式事务设计,源库事务处理模式可直接迁移至金乌数据库进行适配,整体适配周期较短。金乌数据库事务处理模块采用一主多从架构,基于Paxos协议的事务日志同步,满足多数派同步后事务提交。事务更新操作在主进程处理,分布式事务能够高效的集中化处理。单个备进程故障不影响数据库服务,主进程故障可实现秒级快速恢复,相比多主架构任一进程故障都影响数据库服务有更好的高可用能力。通过主TG节点进行整体事务管控,采用一阶段提交模式,避免了分布式数据库因为二阶段提交带来的数据不一致风险。

(四)数据分片方案

金乌数据库采用主键作为分片键,开发人员仅需对业务表进行主键设计,由金乌数据库基于TABLET 128M分片规则进行自动数据均匀分布,分片默认采用3副本,均匀分布在各个存储节点上,针对历史数据可借助金乌数据库分区功能,实现历史数据的快速迁移和清理。多个计算节点和存储节点能够基于多副本多分片并行协同工作,有效利用各节点资源,提升并行能力。

(五)流量控制方案

金乌数据库具备高效可控的流量控制机制,无需应用进行复杂的JDBC配置和应用拆分,应用JDBC配置仅需配置所有CG节点的IP地址和端口即可。金乌数据库通过调整all_cluster的cluster_percent参数,如将流量比设置为100:0,应用流量仅会访问集群生产中心ZONE。如需实现应用双中心访问,仅需修改数据库流量配比即可。

打开网易新闻 查看更多图片

(六)数据库优化技术方案

目前大部分国内外数据库厂商,尤其是商业数据库软件产品,无法共享数据库底层运行机制和源码,针对复杂问题需依赖数据库原厂技术团队介入,沟通效率较慢,问题解决时间较长,本次信贷核心项目中,我社与金乌数据库原厂开展深度合作,刨析数据库底层运行机制,深入数据库内核,SQL语句访问数据库需经历会话创建、词法语法解析、生成逻辑计划、SQL改写、生成物理计划、计划执行,事务提交,日志传输,数据传输每个过程与数据库内部进程和内存组件关系密切,通过工具快速发现可能存在的瓶颈点,可以更快速的在短时间内显著地提高系统性能。国产分布式数据库提供了大量的智能分析工具,结合TOC方法论保障了复杂问题处理周期不超过1天,有效促进了信贷核心项目的快速适配与投产。

四、项目过程管理

项目各阶段的实施周期

2021年,贵州农信初步使用金乌数据库进行企业网银系统适配改造,2022年实现行业应用聚合支付服务平台和企业网银的改造上线,2023年金乌数据库进一步在统一支付系统、信贷核算系统改造上线,2024年计划启动核心业务系统的分布式数据库改造。

五、运营情况

贵州农信基于金乌数据库完成了18套业务系统改造,其中包括行业应用聚合服务平台、核心信贷等关键业务系统,上线运行至今未出现明显性能隐患,充分验证了国产分布式数据库在各类金融级业务场景的稳定性和可复制性。行业应用聚合服务平台是农信体系中首家使用国产分布式数据库的银行收单系统,承载的收单业务呈小额、高频的特性,投产上线后受理收单业务日均业务量791万笔,春节期间单日最高交易量可达到1600万笔,CPU使用率均值10%,高峰期46%,内存使用率均值20%。对于贷款业务日均联机交易量130万笔,日处理账户账务数据超1200万,单日处理会计流水峰值超4400万的核心信贷系统,投产后的信贷核心系统相比老信贷核心系统有了很大的提升,相比老信贷核心4000TPS的处理能力,新信贷核心可以达到7700TPS。在性能方面,日终批处理耗时约50分钟,CPU使用率均值10%,内存使用率均值25%,系统运行较为平稳。

打开网易新闻 查看更多图片

六、项目成效

为稳步推进金融业关键信息基础设施国产化,贵州农信通过沉淀国产分布式数据库改造系统化实施的经验及能力,提升了贵州农信业务系统国产化改造的效率和质量,有力推动国产化改造替代工作,成功实现了省级农信关键业务系统基于国产分布式数据库的突破。相较于传统集中式数据库,国产分布式数据库的替换,充分发挥了分布式数据库可用性、可靠性、扩展性、灵活性等特性,满足了我社在大数据量、高并发、业务持续增长情况下的需求。为启动核心业务系统国产化上云专项攻坚工作,奠定了坚实的技术基础,同时也验证了我社具备全面实现核心系统国产化的能力,为同类型金融行业国产化改造提供了典型的参考案例。

七、经验总结

贵州农信作为西部地区地方性金融机构,根据人行《分布式数据库技术金融应用规范技术架构》要求,我社于2021年开展国产分布式数据库的研究与实践,并与国产分布式数据库厂商深度合作,充分发挥出国产分布式数据库高并发响应、高服务连续性保障、弹性灵活部署等特性,成功完成了18套业务系统基于分布式数据库的建设,建设过程中解决了分布式数据库事务节点主从切换效率较低、数据合并效率较慢、复杂交易响应延迟过高等问题,优化了数据库整体部署架构,解决了分布式数据库中事务节点、计算节点、数据节点间的性能瓶颈冲突,期间与原厂共同研发了一套开发适配审核工具,并引入了基于TOC方法论的分布式数据库优化流程,有效降低了信贷核心系统适配改造周期,形成了一套可复制、可借鉴的分布式数据库优化标准体系,相关适配改造经验可供中小金融机构进行交流、借鉴。

更多金融科技案例和金融数据智能优秀解决方案,请在数字金融创新知识服务平台-金科创新社案例库、选型库查看。