随着互联网的不断发展和逐渐普及,各行各业也纷纷选择了上云之路,腾讯云数据库致力于运用领先技术,助力企业上云,分布式数据库TDSQL就是部署在腾讯云上的一款具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性的数据库产品,《图说TDSQL》栏目将以图文结合的形式,带大家了解TDSQL的方方面面。

本文将为你详细解读,腾讯云TDSQL携手张家港农商银行的“破壁之路”,共同促进银行传统核心数据库首次实现国产化。

内外剧变的背景

银行传统核心系统被国外垄断

虽然在目前来看,国外的集中式数据库已经逐渐跟不上时代的脚步,但对于银行来说,试错的成本是难以承担的,任何一条错误数据造成的损失都无法估量。银行数据库系统被外企垄断超过99%。数据库的复杂程度比拟操作系统,作为基础性软件数据库对成熟度有着极高的要求,这意味着需要较长的研究周期和测试才可以进入市场,这也是为什么国内商用数据库领域长期被国外企业所垄断。

国产数据库得到了长足发展

2002 年,腾讯技术团队选择完全开源MySQL 构建数据库体系,为了解决计费等公司级敏感业务高可用、核心数据的零流失、核心交易的零错账等问题,腾讯从 07 年开始自研了一款数据库产品,这也是 TDSQL 的前身,这款数据库在当时很好的支撑了 09 年的开放平台浪潮。随着腾讯开放合作的发展扩大,行业场景越来越多,这款数据库无法很好的为合作伙伴提供服务,因此从 2012 年开始,由腾讯内部业务适配而衍生的自研数据库 TDSQL 正式诞生。随着不断地迭代和发展,如今的TDSQL 已经完美解决了金融等系统中高可用、数据一致性和水平伸缩等问题。

艰难的破壁之路

面临的挑战

系统结构特殊且复杂,数据迁移要求苛刻。通常行业内银行业务分为传统业务和互联网业务,并各有一套核心系统,两者的相对独立性较大,但与行业一般情况不同的是,张家港行一套核心系统支撑了全行的传统业务和互联网业务。本次迁移的核心系统的数据量在 TB 级,包括了账户、账目、流水、账单、日志等数据。张家港行系统建设方长亮科技表示其核心系统主要分为两大部分,一个为交易子系统,总共有 70 多个结构,覆盖银行卡、资金管理等等;另一个为会计子系统,主要是资金的交易分离、清算总账。核心系统不仅本身系统结构复杂,且还与各个系统都有联系,因此数据库迁移十分复杂、而且难度大。

解决方案

1.两个版本同步开发

在系统建设过程中,张家港行联合腾讯云及系统建设方长亮科技,充分结合银行传统业务与互联网业务的场景差异,对业务逻辑进行重新设计,共同完成新一代核心系统应用兼容性改造和数据库升级优化。三方还共同制定了TDSQL和集中式数据库数据准实时同步的策略作为兜底方案。最终,在充分的技术验证和周密的实施方案保障下,张家港行搭建出一套具备高可用和强一致等特性的数据库架构。

数据库采用分片“一主三备”的模式,保证主节点故障时可以在40秒以内自动切换到备节点并恢复业务;完善的全局分布式事务设计,也能够完全避免发生错帐、乱账、账不平等问题。

2.解决兼容问题

兼容性差异,包括两部分:Oracle 生态与 MySQL 生态、集中式架构与分布式架构的差异,如何解决这个问题呢?针对 Oracle支持的语法但 MySQL 不支持这个问题,TDSQL 做了大量对 Oracle 语法兼容性的优化。对于一些不太适合分布式场景下的使用特性如:存储过程、视图、触发器等,业务之所以用到这些特性,是因为将很多业务逻辑也放在了数据库中,这一定程度上导致了扩展性不足,TDSQL 团队与银行方、核心系统开发商长亮科技进行了仔细的分析与评估,将更合适放到应用层的部分逻辑上移,实现了更为彻底的分布式架构,极大提升了整体的水平扩展性。

3.数据同步模式

设计多源同步解决方案,保证TDSQL到其他异构数据库的导入导出。当因为某些原因需要更换TDSQL,通过数据同步方案可以轻松将数据迁出,TDSQL支持业内标准格式的数据订阅,方便数据的导入导出。同时还引入Oracle灾备方案,将Oracle作为备胎和TDSQL保持实时同步关系,极端情况下可以将TDSQL切换到Oracle,让银行更有信心。

4.完善分布事务机制

TDSQL的分布式事务方案基于两阶段提交,在MySQL原生XA事务的基础上做了大量优化,使其满足分布式事务的使用场景,同时对事务在两阶段期间各类异常场景做到了充分考虑,提供全局视角的分布式死锁检测,清晰查看多个分布式事务之间的锁等待关系,方便开发排查。此外整个设计完全去中心化,不存在单点瓶颈问题,整个事务对业务完全透明,业务只需要像常规事务那样使用即可,因此十分适应银行类的金融场景。

5.两大系统辅助运营

腾讯云提供的“赤兔”和“扁鹊”系统为数据库实现自动化运维提供了丰富的工具,极大地解决了困扰传统集中式数据库运维效率问题。

“赤兔”平台能提供上百项监控指标的展示,结合灵活丰富的告警策略提供风险预警;“扁鹊”系统是 TDSQL 提供包括数据采集、实时检测、自动处理、性能检测与健康评估、SQL性能分析、业务诊断等多种智能工具的集合,采用模块插件化无缝对接各种数据库,可以自动抓取存在性能问题的SQL,并进行智能分析提供索引优化建议,将数据库的性能问题及时扼杀在萌芽当中。在扁鹊的帮助下,DBA可以从日常繁杂的数据库运维工作中解脱出来。“赤兔”平台从管理员视角提供TDSQL的全部运维功能和上百项数据库状态监控指标的展示,让数据库管理员日常90%以上的操作均可通过界面化完成,同时更方便定位排查问题。

“赤兔”和“扁鹊”这一套组合拳既满足高星级业务的精细化运维,又能轻松应对大量的普通数据库运维需求,更好地帮助用户降低运维成本。

破壁过程

1.外围试点

18 年年初,腾讯云首次接触到了张家港行,当时张家港行的一个缴存水电费的外围系统想要尝试国产分布式数据库,经过若干轮 POC 测试最终选择了 TDSQL,这种外围业务尝试国产分布式数据库并不算稀奇,但是大多数的银行对国产数据库的尝试也仅限于此。

2.一年验证

2018 年 8 月左右,张家港行准备对核心系统进行改造,原计划数据库采用国外某商用数据库,张家港行做了一个大胆的决定:同时开发两套新核心业务系统,一套基于国外某商用数据库而另外一套则基于 TDSQL,然后进行“内部赛马”,一年之后对两个系统的稳定性、性能进行对比测试,根据测试结果再决定使用哪套。最终,在充分的技术验证和周密的实施方案保障下,张家港行搭建出一套具备高可用和强一致等特性的数据库架构。数据库采用分片“一主三备”的模式,保证主节点故障时可以在40秒以内自动切换到备节点并恢复业务;完善的全局分布式事务设计,也能够完全避免发生错帐、乱账、账不平等问题。

3.最终胜出

经过整整一年的改造,无论是从性能成本,还是易用性,分布式数据库都表现出明显优势,进而最终新核心系统采用了 TDSQL 分布式数据库,而之前采用集中式数据库的核心系统则保留为灾备系统。

落地影响

性能

根据银行披露的数据,银行传统核心系统完成分布式改造之后,查询交易100毫秒之内,高频率交易300毫秒,贷款结息3分钟,20 秒内可以完成 1 万笔批量代发代扣业务,日终跑批14分钟,存款结息耗时 11 分钟,同时数据库负载均保持在10%以下,目前这个性能已经完全满足张家港行未来十年的业务量。

成本

新核心系统在硬件层面全面采用x86服务器,取代传统商用数据库所需的大型机、小型机,成本优势明显。数据显示,张家港行采用腾讯云TDSQL分布式数据库架构后的硬件成本,只有传统架构成本的1/5甚至更低。

新方向

这个案例像我们证明了在银行核心系统中,长期被国外所垄断商用数据库是可以被替换为国产分布式数据库的。不论是对于银行还是腾讯云来说,这都是一个具有代表性的案例,未来可能会出现更多类似的案例,而银行和国产数据库的发展也有了更多的可能。

本文由博客一文多发平台 OpenWrite 发布!

TDSQL | 张家港行,我是你的“破壁人”相关推荐

  1. 图说TDSQL | 张家港行,我是你的“破壁人”

    着互联网的不断发展和逐渐普及,各行各业也纷纷选择了上云之路,腾讯云数据库致力于运用领先技术,助力企业上云,分布式数据库TDSQL就是部署在腾讯云上的一款具备强一致高可用.全球部署架构.分布式水平扩展. ...

  2. 华为,做千行百业与数字化间的破壁人

    如何才能释放生产力,这是一个人类几千年来都在思考并尝试解答的问题. 在经历了三次工业革命之后,有一点已经成为共识:先进技术的使用,可以普遍性释放社会生产力:但与此同时,每个行业.每家企业释放生产力的需 ...

  3. 破壁人AI百度:科技公司反内卷的典型样本

    互联网整个行业都在陷入被动且尴尬的局面.去年开始流行的"内卷"一词,恰如其分的描述了互联网的现状,比如抖音开始做外卖,微信强推视频号,一直硝烟弥漫的电商市场,更是激战在社区团购上. ...

  4. 刀友访谈:从客服转产品,我付出的不止是时间而已(文末附「破壁人」获奖名单)

    经常逛素材广场或看「素材播报」的刀友们一定对一个名字非常眼熟,那就是--忆设计. 截止到目前为止,忆设计已经上传了 12 个作品,并被数万人使用过了. 参加过设计大赛,也获得过评委们不错的评价. 前几 ...

  5. 敬自由:破壁人华为,开启PC的无界探索

    一篇名为<警报:技术停滞>的博客中提到,很多沿用至今的技术都是上一个25年的历史产物.比如电脑技术的更新换代,从Window98.xp到Win 11,从单核到双核,从640K到 8G 内存 ...

  6. Power AI:堪称机器学习的“破壁人”

    本文讲的是Power AI:堪称机器学习的"破壁人"[IT168 评论]机器学习时代的到来如云计算一般,迅速.规模庞大而且不可逆转,甚至隐隐透露着一丝猝不及防的意味.好像一夜之间, ...

  7. 《三体》中罗辑为什么是自己的破壁人?

    对于罗辑为什么是自己的破壁人这个问题,我从起因,经过和结果进行一一分析,希望能够对各位有疑问的朋友有所帮助. 分析如下: 1.宇宙社会学的起因 想要知道罗辑为什么是自己的破壁人,首先从事情起因来说:智 ...

  8. 【报告分享】元宇宙“破壁人”-做虚实融合世界的赋能者-商汤智能产业研究院(附下载)

    摘要:元宇宙本质上是计算/存储.通信网络.智能交互终端等信息基础设施迭代所引领的新一轮网络革新.元宇宙技术或产业的价值体现不仅在于自身发展,更重要的是它对实体经济的赋能和促进.只有我们先对元宇宙有一个 ...

  9. 【观察】纷享销客:中国SaaS CRM市场的“破壁人”

    申耀的科技观察 读懂科技,赢取未来! 电影<斗士>中,有这么一句台词令人印象深刻:"知道路要怎么走,和走上这条路,是有区别的." 确实如此,如果以此形容中国SaaS C ...

最新文章

  1. beamSearch算法原理
  2. python开源代码-这7个开源的Python库,让你轻松代码分析
  3. [蓝桥杯2019初赛]完全二叉树的权值-完全二叉树的性质
  4. log4net部分配置说明
  5. python函数和类的区别_Python中类中的方法还有区别?
  6. php时间函数引入,PHP日期和时间函数的使用示例详解
  7. 华为云GaussDB专家走进课堂,跟莘莘学子聊聊数据库
  8. python编辑器_自学python第一课之下载安装编辑器
  9. Python模板设置
  10. Oracle的SGA与系统vm.nr_hugepages不匹配导致的故障
  11. [从架构到设计]第一回:设计,应该多一点
  12. 有り様、状態、様子 の 区別
  13. Android--锁定横屏、竖屏、去标题全屏
  14. paip.python错误解决8
  15. 互联网的世界安全吗?且行且珍惜
  16. tf.matmul()和tf.multipy()的区别
  17. 在linux中PHP的集成环境吗,linux有没有php集成环境
  18. 无线桥接 路由AP模式 后怎么进副路由器设置界面?
  19. 解决KEIL MDK编译生成Bin文件时,却生成了*bin文件夹
  20. mysql中计算最大回撤_基金最大回撤算例(Java 1.8)

热门文章

  1. Linux中DHCP原理与配置
  2. SSH下know_hosts的作用
  3. 计算机会计信息系统中暂估存货的处理方法研究
  4. 软件通用自动更新系统
  5. 如何设计股权激励的有效性?
  6. 诚信通(b2b)信息发布5大核心技巧
  7. c语言鸣炮21响,肱二头肌高级训练:”21响礼炮”训练法
  8. Python学习笔记-msg3d实验相关
  9. 刷PHOENIX的BIOS超详细教程
  10. 中断和异常 in 操作系统【操作系统学习笔记】