张家港农村商业银行科技部总经理 周明海传统核心系统分布式数据库探索实践

Posted 金融电子化

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了张家港农村商业银行科技部总经理 周明海传统核心系统分布式数据库探索实践相关的知识,希望对你有一定的参考价值。





关于仿冒我刊收费的声明





我刊自创刊以来,从未向投稿人收取过任何费用。任何以刊发文章为名向投稿人收取费用的行为,均属于对投稿人的欺诈行为。


我刊投稿邮箱为 fcmag@fcmag.com.cn。





张家港农商行2019年8月16日开始上线新一代核心系统,历经48小时完成全部系统改造。新核心系统硬件设备全部采用X86服务器,数据库则采用腾讯云TDSQL分布式数据库作为新核心数据库。这是国内银行首次在传统核心业务系统场景下采用国产分布式数据库,打破了该领域对国外数据库的长期依赖。


采用腾讯云TDSQL,张家港农商行新一代核心实现降本增效、性能提升、同城双活高可用等实际业务价值。正式上线至今3个多月的时间里,数据库运行稳定,各项指标均正常,即使业务高峰期也维持极低负载。


探索分布式数据库的起因

张家港农商行(以下简称“张家港行”)老核心系统使用的是国外商业数据库Sybase,传统数据库架构在业务运行过程中,不可避免地遇到性能瓶颈问题,尤其是在高峰时段,经常出现数据库的吞吐量低,机器负载高,业务响应缓慢等问题,已无法满足当前的用户请求量。

 

同时,随着近年来互联网、云计算、大数据、人工智能等技术的飞速发展,银行业务发展与传统关系型数据库已经呈现出非常多的矛盾。这主要表现为,数据量爆发式增长与传统数据库有限容量之间的矛盾;业务处理的高并发系统压力与传统传统核心系统分布式数据库探索实践数据库性能无法水平扩展之间的矛盾;越来越高标准的业务连续性要求与昂贵的传统数据库容灾技术越来越难以满足要求之间的矛盾。

 

因此,张家港行非常迫切建设新一代核心银行系统,在解决传统核心系统面临的问题的同时,实现传统银行业务向数字化方向转型。

 

张家港行对新核心系统建设很重要的一个考虑点,需要具备支持海量数据场景下的高性能、高扩展、高可用等关键特征的数据库,从而引伸出银行核心数据库由集中式向分布式架构转型的需求。在选择分布式数据库时,张家港行还着重关注数据库在数据一致性以及分布式事务可靠性、性能和稳定性、高可用性、自主可控、业务改造量、运营成本、员工培训、上手难易程度等因素。


新核心系统分布式数据库探索建设过程

张家港行在探索核心银行分布式数据库的前期过程中,也经历交流讨论、POC测试、决策选型等几个阶段。

 

在最早期的技术交流讨论过程中,张家港行邀请了国内几乎所有的主流厂商进行多轮深层次的技术交流和讨论,在对各个厂商的技术有了深度认识和学习后,选择了包括腾讯云TDSQL在内的两款分布式数据库产品进行POC测试。在最终的选择决策时,基于“稳定和成熟”“是否是基于开源mysql内核的数据库”两个标准,最终选择了腾讯云TDSQL分布式数据库。

 

改造时,张家港行做了一个大胆的决定:同时开发两套新核心业务系统,一套基于国外某商用数据库,而另外一套则基于TDSQL,然后进行“内部赛马”,分别对两个系统的稳定性、性能进行对比测试,根据测试结果决定使用哪套。经过整整一年的改造,无论从性能成本,还是易用性,分布式数据库都表现出明显优势,因此最终新核心系统采用了TDSQL分布式数据库,而之前采用集中式数据库的核心系统则保留为灾备系统。

 

张家港行新核心系统的整个改造实施过程分为两个阶段,第一个阶段是产品适配和功能性改造,第二个阶段是性能优化。

 

从集中式架构转变为分布式架构,为了充分发挥分布式架构的高扩展性特性,必须采用分布式架构的开发思路,需要合理规划库表设计,以确保数据分布最符合业务特性,同时能保证性能和扩展性。因此如何根据业务全景,选择最佳的数据分布策略,是首要问题。然后在此基础上,对根据业务场景对索引做持续优化调整,以寻求最佳实践。

 

新核心系统分布式架构改造过程中最大的挑战是复杂SQL问题。在集中式数据库中,由于采用的是Shared-Disk数据集中存储,SQL无需考虑跨多个节点关联问题。而在分布式数据库中,一条复杂的SQL语句可能会涉及多个数据库分片节点,此时可能会导致交易SQL处理性能急剧下降。

 

在解决这个难点问题时,张家港行在业务侧通过调整分片关键字和复杂SQL拆分两个方面做优化,让SQL语句尽可能限制在同一个数据分片节点内。当然,必定会有一些SQL语句由于其业务逻辑的特殊性(如:银行跑批类业务),无法避免跨多个数据节点的表关联,针对这种情况,腾讯云TDSQL产品团队也配合张家港行做了大量针对复杂SQL语句的优化。如:子查询上提、左连接消除、丰富下推逻辑以及基于统计信息的条件推导逻辑等,尽可能提高处理这种复杂SQL语句的性能。

 

交易一致性是银行核心业务系统的基本要求,银行核心业务系统交易一致性要求远高于电商平台和其他互联网应用。由于分布式架构采取分库分表策略,导致跨库跨表的事务增多,如果采用传统交易中间件层二阶段提交(TwoPhaseCommit)机制来进行事务管理,则会引起性能和一致性、可用性问题,成为分布式架构在银行核心业务应用的最大障碍。

 

MySQL在发展的早期提供了异步复制的数据一致性技术,但是这套方案提供的一致性保证,对于计费或者金融行业是不够的。到了MySQL5.5版本的时候,出现了半同步半异步的插件,MySQL半同步是比较轻量级的高一致性容灾方案,但同样存在缺限,受限于已有的同步网络模型。其一,MySQL工作线程在等待备机应答时阻塞,其二,MySQL工作线程利用率低,而导致吞吐率和响应时间会受到影响。

 

腾讯云TDSQL在MySQL开源版本的内核做了很多优化,采取了基于主从架构的线程池结合强同步复制方案大幅提高了性能,对比在跨可用区(IDC机房,延迟约10~20ms)同样的测试方案下,腾讯云TDSQL强同步技术性能优于MySQL5.6的半同步约5倍,优于MariaDBGaleraCluster性能1.5倍,是MySQL5.7异步的1.2倍。

 

此外,张家港行在张家港本地建设同城主备中心,同时也建设了异地灾备中心。在这个两地三中心的架构中,在同城,采用TDSQL一主三备的模式,主备之间采用强同步复制技术,无论主节点还是单个数据中心出现异常的情况下,都可以实现灾备自动切换。腾讯云TDSQL强同步机制,则可以原生地支持两地三中心的容灾架构,完全可以做到灾难发生时的无缝、自动化切换。

 

实现成果、价值与意义

2019年8月18日下午6点,整个改造工作结束,新核心系统成功跑在了腾讯云TDSQL分布式数据库上,张家港银行新核心系统正式对外开业。

 

投产后新核心系统相比旧核心系统有了很大的提升,相比老核心100TPS的处理能力,新核心可以达到6200TPS。在性能方面,高频账户类交易耗时在300毫秒之内,查询类交易耗时在100毫秒之内,20秒内可以完成1万笔批量代发代扣业务,日终跑批耗时17分钟,存贷款结息耗时16分钟,相比老核心日终批处理耗时60分钟、存贷款结息耗时180分钟有着质的变化。

 

新核心系统采用TDSQL分布式数据库同时也帮助张家港行大大节约了成本。张家港行在硬件层面采用传统的X86服务器,取代了大型机、小型机。以近期上线核心系统的某商业银行为例,传统的商业数据库综合硬件成本大概在4000~5000万,系统处理能力大约为8000TPS。而张家港行新核心的硬件成本不到1000万,综合降低成本75%以上,吞吐量达到了6200TPS,并且支持横向扩展。

 

张家港行将二三类电子账户整合到新核心系统中,凭借分布式数据库高并发、横向扩展优势,可以很好地支持爆款金融产品、秒杀、红包、抢购等海量在线客户流量的“小额高频交易”需求,丰富了行内金融产品,与互联网金融业务融合,有效提升银行竞争力。

 

此外,腾讯云TDSQL数据库为张家港行提供了私有云数据库解决方案,提供的分布式和非分布式的数据库均可实现高可用和跨机房数据强一致容灾,解决了传统集中式数据库跨机房强一致容灾的痛点,而且分布式架构的TDSQL数据库也解决了传统集中式数据库IO性能不足的问题。在引入TDSQL数据库后,张家港行就开始计划在新核心业务系统中使用TDSQL数据库,同时应用服务器部署在分布式架构的私有云平台上。解决方案既保证了跨机房强一致容灾,又获得高IO性能,加快了全面向云架构转型演进的进程。

 

新核心系统采用TDSQL分布式数据库后,张家港行也成为全国首个在传统核心系统采用国产分布式数据库的商业银行,打破了新核心系统包括交易子系统和会计子系统,业务涵盖公共、资产、负债、银行卡、结算、内部资金管理等模块,属于全核心系统。提前实现了人民银行近期发布的金融科技发展三年规划中提到的“加强分布式数据库研发应用”的要求,迈出了银行业核心系统全面国产化的关键一步,积极响应了国家在关键领域自主可控的战略要求。




推荐阅读

(点击图片查看精彩内容)



精彩内容回顾



《金融电子化》新媒体部:主任 / 邝源  编辑 / 潘婧

以上是关于张家港农村商业银行科技部总经理 周明海传统核心系统分布式数据库探索实践的主要内容,如果未能解决你的问题,请参考以下文章

张家港农村商业银行版本切换弹出窗口怎样取消

中国民生银行信息科技部总经理 牛新庄分布式架构为民生银行科技金融战略打下坚实基础

2019年商业智能供应链资源下沉全国巡回对接会成都站

青海无海迅达有鲜 物净天泽与宁共享 迅达生鲜广场开业啦

新核心建设那些事丨攻坚克难,向分布式架构要效益——民生银行分布式核心系统建设历程

赵毅 张涛:恒丰银行分布式核心系统-API网关技术的原型落地实践|恒银论坛