PingCAP 戴涛:构建面向未来的金融核心系统

作者:戴涛

导读

近日,平凯星辰解决方案技术部总经理戴涛在 2024 数据技术嘉年华活动中,做了主题为“构建面向未来的金融核心系统”的分享,本文为戴涛演讲实录的全文。

文章分析了中国金融行业的发展趋势,并且基于这些趋势对数据库选择从架构、运维和开发三个视角进行展开。通过平凯星辰多年的金融行业实施经验和丰富案例,基于 TiDB 构建金融核心系统是一条可重复、可复制、具备先天技术优势的路径。

金融核心系统的发展对分布式架构提出更高要求

1 从业务视角看当前中国金融行业处于三浪叠加的阶段

随着金融科技的兴起,银行业正面临着深刻的变革。知名金融科技专家和作家布莱特·金(Brett King)在多部著作中提出,银行经历了四个发展阶段:1.0 网点银行,以物理网点为中心提供基本的存贷款服务;2.0 渠道银行,拓展线上渠道,例如 ATM、网上银行、手机银行等;3.0 平台银行,基于移动随时随地获得金融服务;4.0 开放银行,嵌入生产、生活,无所不在的智能银行。当前,中国银行的业务发展呈现出三浪叠加的态势:从 1.0 到 2.0 做网点转型,2.0 到 3.0 做渠道转型,3.0 到 4.0 做开放银行的转型。

三浪叠加的业务,对于当前的银行提出了更高的发展要求。银行的 IT 部门如何面对这些需求?唯有加速数字化转型。在技术方面加快技术融合场景,加速体验创新;技术架构升级推动科技创新,特别是采用分布式、微服务的架构,并且通过 DevOps 体系搭建数字化 IT 生产线;最后需要加大金融 IT 科技投入和人才组织创新。

2 从技术发展看,金融业对于金融科技提出更高的要求

这些转型的背后对业务和 IT 都提出了巨大挑战,以银行技术举例,银行发展的周期和 IT 技术是密不可分的,需要综合考虑业务需求和 IT 技术的演进。 追溯到 60 年代,半导体技术的突破使得电子数据取代人工记录,银行业务迈入信息化时代。 70 年代小型机、大型机出现,实现了银行业务的系统化批处理,提高了工作效率。 80 年代终端 PC 的普及,推动了银行业务的远程化和自动化,客户服务体验得到显著提升。 90 年代局域网的应用,开创了银行数据中心公司网时代,为集中化数据管理奠定了基础。 2000 年至今,银行业开启了互联网新时代,金融服务变得更加便捷、高效。

金融科技经历了从金融电子化、互联网化到金融科技融合与创新的演变历程。在金融科技融合与创新阶段,未来的新技术趋势可以浓缩为 ABCDIR5 七项:即 A 人工智能技术、B 区块链技术、C 云计算及平台、D 大数据相关技术、I 物联网和平台、R 机器人技术、5G 通信技术,这些新技术被广泛应用于越来越多的金融业务场景,对数据和数据库技术提出了新的挑战和要求。

3 IT 架构和业务需求双轮驱动推动银行核心系统升级

业务需求和 IT 架构是银行数字化转型的双轮驱动。传统金融核心系统以技术为中心,面向业务流程,产品开发周期长,数据庞大且业务繁杂,信息交换和共享效率低。而金融数字化升级需求则以用户为中心,强调架构的灵活性、敏捷性和海量业务的承接能力。以互联网支付处理为例,业务需求的快速变化如何承接?渠道和用户的体验如何优化?营销成本如何降低?IT 基础设施的升级重构是银行数字化转型成功的关键。银行需要构建一个敏捷、弹性、数据驱动、安全可靠的 IT 基础设施,以满足业务需求和数字化升级的需求。

4 分布式架构成为银行核心转型的必然路径

分布式架构已经成为银行核心转型的必然路径。 在早 期 WTO 时代,银行核心系统采用胖核心架构,将记账、数据分析、审计、监管等多种功能集成在一个系统中,以满足银行全面的业务需求。 随着金融业务的复杂性和多样性不断提升,传统胖核心架构难以满足敏捷性和弹性需求。 银行逐步转向采用瘦核心架构,将核心业务功能与非核心业务功能分离,以 SOA 架构为基础,把非核心业务功能模块化,通过服务接口进行调用,提升了系统的灵活性和可扩展性。

互联网技术的兴起,对银行业务产生了深远的影响。传统银行核心系统难以满足互联网业务的敏捷性和弹性需求,因此出现了双核心架构。双核心架构是指银行同时运行传统核心系统和互联网核心系统,以满足不同业务场景的需求。传统核心系统主要负责处理核心交易和数据管理,而互联网核心系统则主要负责处理互联网业务,例如网上银行、在线支付等。

近几年,随着微服务架构的兴起,银行核心系统开始向分布式架构演进。分布式架构将核心业务系统拆解为多个微服务,每个微服务独立开发、部署和运行,通过 API 接口进行通信,具有敏捷开发、弹性扩展、高可用等优点,称为分布式核心或者无核心。在此基础上结合自主可控的要求,分布式核心能够更好地支持业务的创新和可持续发展。

2023 年 11 月,TiDB 助力杭州银行新一代核心系统成功投产。杭州银行的资产规模约为 1.6 万亿,在中国银行排名在二十名左右。新核心系统是业内首个实际投产的云原生、分布式、全栈国产化的银行核心系统,标志着杭州银行核心业务系统实现完全自主可控和架构升级。

自上线以来,新核心运行高效稳定,日均交易量 1500 万笔,服务调用 5500 万次。客户体验显著优化,与上一代相比,新核心的联机交易性能大幅提升,平均响应时间小于 100 毫秒,提升了 1.5 倍;日终批量处理效率翻倍提升,为原系统的 2.1 倍,整个批处理在一小时之内完成。杭州银行采用了 TiDB 两地三中心架构部署,实现了双活数据中心双写并行、灾难快速自动恢复且数据零丢失。

杭州银行坚持应用与基础设施解耦的架构思想,秉承分布式、透明化的设计开发理念,这对于同行业来说具有重要的参考价值。在此次核心系统改造中,杭州银行并未对业务架构进行大幅调整,而是将业务逻辑平移至新的技术平台之上,既保留了原有的使用习惯,又为整体架构路线奠定了可持续创新的基础。

面向未来的金融核心系统对数据库的要求

总结下来,构建面向未来的金融核心系统对数据库的要求有三大维度。

  • 从架构视角看,核心业务对数据库的要求除了稳定性以外,一定要考虑到数据库的通用性和开发透明性。
  • 从运维视角看,除了同城双活以外,需要考虑到更好的线性可扩展,运维便捷以及更好的易用性。
  • 从研发视角看,需要关注在开发和业务实践过程中,对于分布式事务、热点等问题的解决方案,以及技术生态是否健全等。

1 架构视角看,优先考虑开发透明性和迁移路径

从架构视角看,银行核心系统历经二十多年发展,积累了大量业务资产和应用系统,涉及多家供应商,数据库架构的选择需要以开发透明化为核心。传统分库分表方案对开发团队提出了较高要求,且造成技术栈和业务逻辑的复杂化。为了降低开发复杂度,提高开发效率,原生分布式架构的数据库产品是更好的选择,开发团队可以像使用传统数据库一样设计应用和开发代码。其次,选择对运维扩容更加透明的数据库产品,应用无需担心数据库表容量问题,单表大小可无限扩展且无性能拐点。第三,利用 HTAP 能力提供查询分析的透明性,提供更高性能的 SQL 执行效率。此外,数据库还应提供热点数据自动感知且自动打散的能力,从而降低应用设计的复杂度。

系统迁移 5R 模型为系统迁移规划提供了三个主要途径:平迁、改造迁移和新架构重构。调研数据显示,金融行业采用技术平移方式的比例为 56%,而采用新系统架构重构方式的比例为 44%。根据我们服务大量金融客户的经验,对于构建金融核心系统而言,平迁并非最佳选择。平迁虽然看似简单直接,但往往无法为业务带来显著收益。因此,在进行系统迁移决策时,应结合业务需求的主线进行综合考量。

对于大量的边缘化非核心系统,平迁是一种更为经济便捷的方式。它可以有效降低迁移成本,并减少对业务运营的影响。然而,对于核心系统而言,新架构重构才是收益最大的方式。重构意味着采用全新的架构、软硬件和设计开发理念,是实现核心系统升级和业务转型的重要途径。

在过去几年,随着互联网业务的兴起,一些银行采用分库分表单元化的架构来构建核心系统。如下图所示,单元化架构采用总分总结构,将全球业务分成三个业务单元。不管单元怎么划分,你会发现总是需要汇聚的,比如说全局管理单元、全局批量单元和全局数据汇聚单元等。单元化架构需要对应用代码、基础设施、数据存储做大量的改造和重新设计,导致架构复杂度大幅提升,维护难度随之增加。单元化架构本质上并非易于横向扩展的架构,随着业务量的增长,系统扩展难度会显著增加。跨地域数据同步一致性是单元化架构面临的重大挑战,需要复杂的解决方案来确保数据的一致性。

单元化架构并非构建金融核心系统的最佳选择,其高复杂度、低扩展性和数据同步挑战等问题制约了系统的长期发展。我们优先考虑在数据库级别采用横向扩展的技术,相比于单元化架构更具优势。对于拥有强大技术实力和资源储备的大型银行,单元化架构是一个可行的方案,其开发成本和周期可控。对于大多数中小银行,微服务架构搭配原生分布式数据库的组合更具优势。微服务架构可以提升开发的敏捷性和灵活性,原生分布式数据库则能提供弹性扩展、高可用和强一致性等特性,可以帮助中小银行构建高效、可靠且成本可控的核心系统。

2 运维视角看,优先考虑扩展性和真同城双活架构

从运维视角看,TiDB 原生分布式架构支持基于单节点的在线扩缩容。传统分库分表数据库的扩容非常复杂,往往需要做多个节点的扩容,例如从 8 个节点到 16 个节点,从 16 个节点到 32 个节点。TiDB 支持按需的单节点扩容,无数次客户侧 PoC 的结果表明,随着节点的增加,TiDB 的性能呈现准线性的增长。在银行季度结息场景下,可动态增加 TiDB 的计算节点,提升处理效率,缩短结算时间。

TiDB 在业界率先实现了银行核心系统的分布式数据库双活架构,为金融机构的业务连续性提供了坚实的保障。分布式数据库通常需要三中心部署才能实现双活,但对于大部分金融机构而言,由于数据中心地理位置限制,难以满足三中心部署条件。TiDB 创新性地推出了“3-2-1”双中心架构,在生产主中心部署 3 个 TiKV 节点,在同城副中心部署 2 个 TiKV 节点和 1 个 Learner 节点。该架构以更低的成本实现同城双活,已在多家银行成功落地。

除了两中心双活方案之外,TiDB 还提供金融级高可用的两地三中心方案。当主集群发生故障时,可以快速切换到灾备集群提供对外服务能力。通过引入只读集群、测试集群、近线库、逃生库等多种灾备扩展方案,全面满足金融机构的容灾备份需求。

3 研发视角看,需要端到端的各种场景解决方案

从研发视角看,分布式事务处理无疑是一个首要难题。目前,业界主流的分布式事务模型主要有 XA 锁,SAGA 模型、 TCC 模型和 MQ 事务消息机制。针对金融行业的业务特点,我们采用了 SAGA 模型帮助用户做账务的处理,利用 MQ 事务消息机制来辅助用户完成异步核算任务。在银行进行分布式系统改造的过程中,为了满足对数据实时性的要求,我们不仅需要优化数据库性能,还需要对应用架构进行相应的调整,以确保数据的低延迟传输和处理。

在研发领域,除了分布式事务处理之外,读写热点问题也是我们关注的重点。无论是传统数据库还是分布式数据库,写热点问题都是一个普遍存在的挑战。对于写热点的处理,我们建议采用 TiDB 数据库的散列写入策略。对于读热点问题,我们需要从两个层面进行优化。在数据库层,通过引入高效的缓存机制,提升热点数据的访问速度;在应用层,通过合理的缓存策略,进一步减轻数据库的访问压力。

在中国银行业,热点账户问题尤为突出,这要求我们在业务设计上做出一定的调整和妥协。同时,在 SQL 语句的编写上,尽量采用批量提交的方式,以减少对热点账户的频繁更新操作。在极端情况下,我们还需要与银行业界共同努力,不断完善相关应用的台账管理,以应对热点账户带来的挑战。

在跑批场景,TiDB 提供核心批处理解决方案。以微众银行为例,批量数据每天通过单元化数据库 TDSQL 近实时的同步到 TiDB 集群进行汇总,由批量应用程序在 TiDB 集群进行批量计算和加工。得益于 TiDB 出色的汇聚能力和可扩展性,以及丰富的工具生态系统,TiDB 上线之后,主要贷款业务的核心批量耗时显著减少,较原有系统提升了 3.8 倍。在面对大促销等高流量场景时,TiDB 展现出了卓越的水平扩展能力,能够轻松应对突增的数据处理需求。

TiDB 原生分布式的架构与传统集中式数据库相比具有显著的差异。银行核心系统对性能、稳定性、跨地域的高可用性都有着严苛的要求。因此,TiDB 建立了混沌工程体系,通过混沌测试来探索系统的性能边界、验证高可用性和容灾能力、评估扩展性、优化监控和告警机制、检验应急预案有效性,评估外围作业对系统的影响等。平凯星辰携手杭州银行,基于风洞实验室的生产仿真环境进行了大量的测试和验证工作,通过场景提炼开发 10 余项产品新特性。

在经历了二十多年的发展后,银行业的信息技术已经达到了一个相对成熟的阶段。然而,在当前不断变化的技术环境中,银行科技部门面临着新的挑战,包括采用新技术、构建新架构和实施新工程。银行科技部门需要走出现有的舒适区,积极拥抱变革,重新构建一个完整的 IT 技术生态系统。这包括从需求分析,到开发、测试、发布,再到监控和运维的整个生命周期,形成一个面向未来的业务演进和规划的闭环系统。

4 TiDB 是面向未来的金融核心数据库

TiDB 是一款自主研发的原生分布式 HTAP 数据库,为金融机构打造了高性能、高可用、弹性扩展的现代化数据基础设施,其架构设计有以下特点:第一,存算分离,解决了高性能、高并发和在线扩容问题,且不依赖于特定的硬件和云平台。第二,TiKV 行存和 TiFlash 列存来应对 OLTP 和 OLAP 场景需求,TiSpark 提供大数据处理能力。第三,数据三副本机制,天然具备集群级的高可用。TiDB 提供了多种数据迁移工具,支持 MySQL 和 Oracle 数据库的平滑迁移。通过 TiCDC 同步工具,TiDB 的数据可同步至 MySQL、Kafka、对象存储等。此外,TiDB 还提供丰富的监控和企业管理工具,构建了一个完善的数据库技术生态。

携手 TiDB 构建面向未来的金融核心系统

作为一款广受全球用户青睐的开源分布式数据库,TiDB 赢得了国际社会的广泛认可。在 2022 和 2023 年,TiDB 连续两年入选 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分。在沙利文头豹研究院发布的“2023 年中国金融级分布式数据库市场报告”中,TiDB 跻身市场领导者梯队。在 DB-Engines 最新 4 月的关系型数据库榜单中,TiDB 排名第 40 位,是中国唯一进入 Top 50 排名的数据库。

在构建一个面向未来的金融核心系统时,选择合适的数据库至关重要。以下是从不同角度出发,对理想数据库产品选择的总结:

  1. 架构层面:应优先考虑采用原生分布式架构的数据库,以确保系统具备良好的扩展性和弹性。同时,数据库应提供高透明度的开发环境,让开发者能够清晰地理解和掌握其工作原理和行为模式。
  2. 运维角度:理想的数据库应支持线性扩展,以便于系统运维团队能够轻松地进行扩容和管理。此外,数据库应提供高效的同城双活灾备方案,确保在面临灾难性事件时,系统的稳定性和数据的安全性。
  3. 开发角度:在分布式事务处理和读写热点问题上,数据库应有成熟的解决方案和最佳实践。这意味着数据库不仅要能够处理高并发的读写操作,还要能够提供有效的策略来分散热点,避免系统瓶颈。

TiDB 在国有大行 PB 级别的数据服务平台、城商行核心系统、保险公司保单系统等金融核心场景,成功实现了经典数据库和 MySQL 数据库的升级替换。在服务金融行业客户的过程中,TiDB 已经积累了丰富的最佳实践和经验。我相信未来能帮助更多的城商行、券商和保险公司,基于 TiDB 数据库来构建面向未来的核心系统。

通过平凯星辰多年的金融实际案例和实施经验,基于 TiDB 构建金融企业核心系统是一条可重复、可复制、具备先天技术优势的路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/623043.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

集合系列(二十五) -二叉树、平衡二叉树、红黑树性能总结

一、摘要 二叉树,作为一种数据结构,在实际开发中,有着非常广泛的应用,尤其是以平衡二叉树、红黑树为代表,在前几篇文章中,我们详细的介绍了BST、AVL、RBT的算法以及代码实践,下面简要概括描述一…

nginx目录枚举修复手册

nginx目录枚举修复手册 漏洞背景 修复方式: ssh zujian2 sudo vi /data/apps/nginx/conf/conf.d/default.conf server {

免费的GPT4终于要来了!OpenAI直播发布会详细解读!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

简单易懂的HashMap使用指南:从入门到精通

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

Wifi——Wifi断连问题分析

一、iperf测试wifi断连 1.信号强度差 -36表示非常强;但网络质量依然非常差。 可以分析出四个原因: 2.与throughput相关 为什么同一个网络的信号强度估算会有一定差异?! 下图是上述log的一些信息:

DTC 2024回顾丨zData X 多元数据库一体机:开创多元数据库时代部署新范式

导语 在2024“数据技术嘉年华”上,云和恩墨数据库一体机产品总经理刘宇在“数据库极致特性”专题论坛发表了题为《打造多元数据库部署新范式,引领一体化资源池创新之路》的演讲。他深入分析了国产数据库面临的挑战,并详细介绍了云和恩墨如何利…

F5G-A万兆光网商用启航,挥动FTTR F50星光之翼,北京联通助力首都家庭飞向全光智慧时代...

2001年,王菲在发行的新歌《光之翼》中唱道:静静地按下电源开关/屏幕的色彩越来越亮/在虚拟的城市/找一个让心灵休息的地方/张开透明翅膀/朝着月亮飞翔/搜寻最美一个现世的天堂…… 将时间拨回千禧年,“看不见的城市”“伊托邦”“网络之城”&…

享元模式详解

享元模式 1 概述 定义: ​ 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存…

问题解决记录 | kettle中出现中文乱码

spoon.bat的启动文件中进行修改 if "%PENTAHO_DI_JAVA_OPTIONS%""" set PENTAHO_DI_JAVA_OPTIONS"-Xms1024m" "-Xmx2048m" "-Dfile.encodingUTF-8"

2.数据类型与变量(java篇)

目录 数据类型与变量 数据类型 变量 整型变量 长整型变量 短整型变量 字节型变量 浮点型变量 双精度浮点型 单精度浮点型 字符型变量 布尔型变量(boolean) 类型转换 自动类型转换(隐式) 强制类型转换(显式) 类型提升 字符串类型 数据类…

独立游戏《星尘异变》UE5 C++程序开发日志3——实现一个存存组件

本篇日志中,我将会介绍如何实现一个有格子,每个格子有容量的物品库存,如下图: 一.库存容器 1.储存数据的容器 库存容器最重要的目的就是存储每一种类的物品拥有的数量,这里我用的是哈希表: std::unordere…

“圣诞树图案的打印~C语言”

圣诞树图案的打印~C语言 题目原文:[圣诞树](https://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2?tpId107&rp1&ru/ta/beginner-programmers&qru/ta/beginner-programmers/question-ranking&difficulty&judgeStatus&tags&…

机器学习中的聚类

目录 认识聚类算法 聚类算法API的使用 聚类算法实现流程 聚类算法模型评估 认识聚类算法 聚类算法是一种无监督的机器学习算法。 它将一组数据分成若干个不同的群组,使得每个群组内部的数据点相似度高,而不同群组之间的数据点相似度低。常用的相似…

Linux0.11 中全局描述符表(GDT)

在Linux内核中,全局描述符表(Global Descriptor Table,简称GDT)是一个关键的数据结构,主要用于管理处理器的内存段和相关的权限与属性。它属于x86架构中的保护模式特性,允许操作系统对内存访问进行更精细的…

HFSS学习-day5-边界条件

边界条件 概述边界条件类型1、理想导体边界条件(Perfect E)2、理想磁边界条件(Perfect H)3、有限导体边界条件(Finite Conductivity)4、辐射边界条件(Radiation)5、对称边界条件&…

微信小程序开发题库

一. 单选题&#xff08;共12题&#xff0c;60分&#xff09; 1. (单选题) 有如下HTML代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Document</title> <style> ul,li{ margin:0; p…

企业为什么需要HTTPS

一.什么是HTTPS HTTPS &#xff08;全称&#xff1a;Hyper Text Transfer Protocol over SecureSocket Layer&#xff09;&#xff0c;是以安全为目标的 HTTP 通道&#xff0c;在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL&a…

算法day05

第一题 1004. 最大连续1的个数 III 题目如下所示&#xff1a; 如上题所示&#xff1a; 题目本意是在一个数组中只有1和0&#xff0c;给定一个k值&#xff0c;将小于k个0翻转成1&#xff0c;然后返回最终得到最长的1的个数&#xff1b; 我们将这到题的意思转化为另外一种意思&…

C++ | Leetcode C++题解之第88题合并两个有序数组

题目&#xff1a; 题解&#xff1a; class Solution { public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int p1 m - 1, p2 n - 1;int tail m n - 1;int cur;while (p1 > 0 || p2 > 0) {if (p1 -1) {cur nums2[p2-…

Gitee添加仓库成员

1.进入你的项目 2.点击管理 3.左侧有个仓库管理 4.要加哪个加哪个&#xff0c;有三个方式~ 可以直接添加之前仓库合作过的开发者