方案概述
TDSQL是腾讯自主研发的一款金融级分布式数据库产品,诞生于腾讯内部计费业务系统,历经多年海量高并发金融计费场景验证打磨而成,具备强一致、高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,以及提供数据库迁移、智能运维管理等较完善的产品服务体系。
目前,TDSQL对内支撑腾讯 90% 的金融、计费、交易类业务核心系统,对外则通过腾讯云为微众银行、深圳地铁等超过500+的政企和金融机构提供数据库的公有云及私有云服务,客户覆盖银行、保险、证券、物联网、政务等领域。TDSQL在各行业领域均产生良好的生产和社会效益。
方案背景
过去由于数据库被国外传统商业数据库厂商长期垄断,数据库产业存在以下问题:
1、传统商业数据库硬件依赖于小型机等机器设施,数据库系统成本居高不下,金融机构议价能力低。以传统的IOE体系为例,基于IBM的服务器、Oracle的软件,EMC的存储,整个一套体系全线国外产品,相较于基于X86架构的分布式数据库架构体系,整体价格十分昂贵;而且金融行业数据库太过于重要,导致一旦选型定下来后,后期便很难根据业务需求变更选择。
2、完全使用国外数据库产品,国内企业仅停留在使用层面,没有源码,对内部核心机制掌握不够,既存在安全隐患,亦无法应对类似贸易战带来的后续无法更新维护的风险。尤其是Oracle的CEO多次在媒体上表达对贸易战的支持,以及支持对中国的遏制。
3、互联网大潮和普惠金融的冲击下,传统商业数据库的集中式方法无法适应互联网的指数级业务增长,如果继续使用传统数据库,无疑会带来IT系统层面的风险。
方案目标
TDSQL 提供公有云、专有云两种部署方案,以及提供关系型数据库实例、分布式数据库实例、分析型数据库实例。同时 TDSQL 具备虚拟化多租户、强同步复制、线程池、热点更新、内核优化等能力,为用户提供事前、事中、事后的全维度安全方案。
1、技术方面:传统集中型数据库,成本高、扩容难、性能受限,传统模式下靠采购高端设备以及增加硬件来保证数据库可用性和扩展性的方案正面临越来越大的压力。而自主可控分布式数据库具备高可扩展性、高性能、高可用等特性,可以很好的满足产业互联时代线上化、高频、多维度、高并发的场景需求,能够帮助金融机构在解决技术瓶颈问题的同时,助力实现降本增效,而节省下来的成本效率,银行可用于业务快速创新和迭代,发展互联网线上化业务,在时间和空间上扩大银行业务服务版图。
2、成本方面:基于TDSQL的新系统在硬件层面全面采用x86服务器,取代传统商用数据库所需的大型机、小型机,成本优势明显。最新客户案例数据显示,张家港农商行采用腾讯云TDSQL分布式数据库架构后的硬件成本,只有传统架构成本的1/5甚至更低。
3、运维方面:TDSQL提供的“赤兔”和“扁鹊”系统为数据库实现自动化运维提供了丰富的工具,极大地解决了困扰传统集中式数据库运维效率问题。其中,“赤兔”平台能提供上百项监控指标的展示,结合灵活丰富的告警策略提供风险预警;“扁鹊”作为一套智能检测系统,能轻松应对锁冲突、索引缺失、故障切换等数据库异常,大幅缩短日常定位排查问题的时间。
方案特点
TDSQL腾讯分布式数据库具备以下优势:
1、数据不丢不错乱:业界领先的强同步复制能力(Multi-thread Asynchronous Replication,MAR),在主从架构下,确保主从节点数据完全一致。即使在节点故障切换、故障恢复时,确保主从节点数据完全一致,不丢不错乱。
2、更可靠的数据库:完善的故障转移与恢复功能、灵活的运营、完善的监控,以确保数据库资源的持续可用。同城多中心部署场景下,即使是数据中心级故障,也能有效保障业务的连续性。
3、基于云的数据库:基于分布式架构设计,无论是数据库集群,或是实例,都具有良好的扩展能力,可以根据实际需求采购数据库资源。闲时超用策略,即使是偶然性业务波动,也能轻松应对。多种读写分离方案,RocksDB,热点更新等能力,能让数据库实例具有更强的适应性。
4、更安全的数据库:已代表腾讯云数据库通过多项国家或国际认证,符合信息安全等级保护三级(部分四级)安全标准,目前稳定支撑金融行业多个核心业务系统。
5、更好用的数据库:产品即开即用,提供包括自动备份、系统监控、性能分析等多种完备能力。也是云上首批提供(扁鹊智能分析系统)能力的数据库,为运维人员更好优化系统性能提供有力支持。
方案业务流程图
TDSQL采用分布式集群架构(如下图所示),该架构具有较高的灵活性,不仅简化各个节点之间的通信机制,也简化了对于硬件的需求。使得TDSQL的关系型实例、分布式实例、分析型实例不仅可以混合部署在同一集群中,而且即使配置简单的x86服务器,也可以搭建出类似于小型机、共享存储等一样稳定可靠的数据库。
实现功能展示
腾讯云 TDSQL 是基于分布式架构的数据库,高度兼容 MySQL、高性能、高可用、企业级安全与监控、可扩展、易用性为一体的数据库托管服务。
1、强同步复制(MAR)
由于数据库中记录了数据,想要通过高可用架构实现切换,要求数据必须完全一致且同步的,所以数据同步技术是数据库高可用方案的基础。
目前,开源MySQL数据库数据复制包括异步复制、半同步复制两种类型。这两种复制技术的主要问题是,当出现节点故障时,将可能导致数据丢失或错乱。而且,这类复制技术以串行复制为主,性能相对比较低。而腾讯自主研发的基于MySQL协议的并行多线程强同步复制方案(MAR),在应用层发起请求时,只有当从节点(Slave)返回信息成功后,主节点(Master)才向应用层应答请求成功,以确保主从节点数据完全一致。
2、自动故障转移与恢复
在生产系统中,通常都需要用高可用方案来保证系统不间断运行;数据库作为系统数据存储和服务的核心,其可用要求高于计算服务资源。TDSQL高可用方案原理是让多个数据库服务协同工作,当一台数据库故障,其余机器立即顶替工作,以使服务不中断或只中断很短时间,该方案简称主从高可用,也可以叫做主备高可用。
3、弹性的扩展能力
TDSQL基于分布式架构和多租户方案,天生具有良好的弹性。这意味着数据库实例的并发性能、处理能力、存储容量可线性增长。
集群的弹性扩展能力:TDSQL是由一系列数据库节点组组成。集群的整体承载规模取决于集群中所有设备的总规模。若集群性能不足以支撑,可以通过更换更高配置的硬件、或增加新的节点予以扩展。为便于DBA操作,TDSQL赤兔运营系统提供自动化实例迁移方案,DBA只需简单操作即可完成资源上线、集群扩容、实例迁移等操作。
实例的弹性扩展能力:分布式实例,由于其采用分布式架构,水平拆分逻辑,性能和容量均可以随分片的数量增长而线性增长。由于分片数据可能存在不均衡情况,TDSQL提供新增分片、扩容单个分片等扩展方案,相关扩展方案仍然只需要通过控制台简单操作,即可实现快速、平滑扩容。
4、热点更新
在类似“秒杀”和“限时抢购”等场景下,大量的用户在极短的时间内请求大量商品,当并发度越高时等待的线程也会越多,将导致TPS下降,RT上升,数据库的吞吐量会严重受影响。
TDSQL采用让用户使用尽量少的修改量(增加几个关键字的使用)的方法,便可以快速支撑热点更新功能,为类似于秒杀,限时抢购等业务场景服务。同时对于已用缓存、热点库的场景下,再为业务进一步提高性能,减少故障发生概率,减少Cache击穿带来的雪崩风险,提高平台整体稳定性。
5、信息安全保障
数据安全加密:TDSQL支持表空间加密(透明加密)和连接加密(SSL连接加密)。对于没有KMS(腾讯密钥管理服务)的场景,TDSQL支持密钥环服务,使内部服务器组件和插件能够安全地存储敏感信息以备后续检索,该服务包含一系列API,以供加密功能调用密钥服务。
SQL防火墙:SQL防火墙是对用户发送的SQL语句进行语法解析,过滤非法SQL语句的安全能力。其与SQL Engine配合,可以对用户预先定义的非法SQL语句进行判断,从而进行过滤和阻断,可以有效的预防SQL注入恶意非法攻击。
全维度的安全审计:安全审计是一项最重要的事后追溯手段,例如,国家等级保护(三级)明确要求(7.1.3.3)信息系统应支持审计能力。TDSQL提供以下三个层面的审计能力,为用户提供完善的安全保护。
- 运维系统方面的安全审计,由赤兔运营系统的操作日志提供安全能力。
- 数据库系统的安全审计,由腾讯云自研的数据库审计系统完成。
- 服务器操作系统的安全审计,由腾讯云自研的铁将军系统提供。
6、完善的运维能力
当前,云的运维呈现两极化趋势,一方面是高星级业务的精细化运维需求,另一方面是大量的普通数据库运维需求。基于云数据库运维层面差异化、数量多、变化快等特点,TDSQL提供了两套平台:赤兔运营系统&云数据库管理系统;以应对不同场景的客户需求。
赤兔运营系统:从管理员视角,提供TDSQL的全部运维功能,可管理TDSQL集群的物理资源、调度决策系统、备份与恢复系统、可用区管理、实例管理、智能性能分析与监控告警等,主要用于腾讯内部或企业IT运维团队。
云数据库管理系统:从租户视角,提供TDSQL实例的运维功能,可管理TDSQL数据库实例,包括实例申请与退还、系统监控与告警、备份与恢复、性能优化等,主要用于云的客户或业务团队使用。
7、智能性能分析
智能性能分析(扁鹊系统)是TDSQL提供包括数据采集、自动处理、性能检测、SQL性能检测、业务诊断等多种智能工具的集合,并根据分析结果提供智能优化建议。例如:
- 性能检测与健康评估:扁鹊系统将腾讯多年的运营经验,诊断过程通过规则配置的方式沉淀在系统中,并利用深度学习组件不断强化对规则修订。扁鹊系统应用这些规则,结合监控数据,搜集数据库一段时间内的状态信息进行分析,形成检测报告告知用户。并反馈问题可能的原因和解决方案。
- 实时检测:用户常常会遇到SQL命令执行被卡住,导致业务频繁超时的问题,通常是因为慢查询较多,或长时间有锁等原因导致。扁鹊系统提供了实时检测工具,能帮助用户快速定位问题。
- 慢查询分析:慢查询常常会引起DB响应慢,CPU消耗过高等多种问题,而引起慢查询的原因通常是索引缺失或索引设计不合理导致的,这也DBA手动分析SQL语句,结合SQL涉及的表结构找出缺失的索引,并反馈给用户。扁鹊系统可自动分析并合并同类慢查询,并通过可视化方式展示出来,配合SQL优化功能,以协助DBA有效优化业务。
- SQL优化:同一条SQL语句,采用不同的写法,及是否建立索引等,可能导致性能不一样;扁鹊系统中提供的智能SQL优化工具,可以帮助您写出更好的SQL语句或针对性地优化。
8、物理独享解决方案
TDSQL支持物理独享解决方案,即可以让您在大的公有云资源池中,申请一个小的物理集群;该方案除资源独立以外,其他云数据库应有的功能也完全具备。让您的业务即能享受云的弹性,又具有类似于专有云的独立性。
9、兼容JSON
TDSQL的分布式实例、关系型实例支持JSON功能,对比于MongoDB目前的三大核心功能:JSON的灵活性,复制集群保证高可用,Sharding保证可扩展,TDSQL均可以支持。基于腾讯金融级特性,无论是其自身数据强一致、高可用和可扩展也有着完善的解决方案,且能够支持关系型数据库的事务,Join等功能。
方案案例及效果
案例一:微众银行
微众银行:为分布式数据库在互联网银行核心交易系统的应用首例。TDSQL在微众银行作为交易核心DB,部署超过800个节点,承载全行所有OLTP业务。由于完全采用互联网架构,相比传统的IOE方案,微众银行在IT成本上大幅节约。同时,互联网架构的高伸缩性,使得微众银行的服务能力具备很高的弹性,足以轻松应对普惠金融场景下的潮涌。数据显示,2017年微众银行将每个账户的运营成本降至平均只有6元人民币,仅为内地传统银行的1/10,相比国际银行则更低,只有其成本的2%至5%。
案例二:米大师
腾讯推出的移动支付组件米大师,专注移动支付解决方案,实现移动终端的更大营收。当前米大师正在为多个腾讯游戏、电商支付等平台提供服务。米大师分布式物理节点数超过1000个,账户总量超过300亿,每日请求超10亿,平均99.95%的请求在5ms以内响应,连续三年运营零中断、数据零误差。
案例三:张家港农村商业银行
基于国产金融级分布式数据库腾讯云TDSQL打造的张家港农商银行新一代核心业务系统成功投产,这是国内银行首次在传统核心业务系统场景下,采用国产分布式数据库,既打破了该领域对国外数据库的长期依赖,率先响应了国家对金融核心领域技术自主可控的要求,同时在成本、性能、效率、银行数字化转型创新等各方面带来长足的收益。
在成本方面,张家港农商行采用腾讯云TDSQL分布式数据库架构后的硬件成本,只有传统架构成本的1/5甚至更低。在性能上,基于腾讯云TDSQL的新核心系统也表现优异:高频账户类交易耗时在300毫秒之内,查询类交易耗时在100毫秒之内,20秒内可以完成1万笔批量代发代扣业务,日终跑批耗时14分钟,存款结息耗时11分钟,贷款结息耗时3分钟,核心系统年终结算相比传统集中式架构提效70%;批量业务进行时,数据库负载均保持在10%以下,完全满足张家港行未来五到十年业务发展需求。
方案未来展望
技术方面:TDSQL的分布式能力尚有10%的SQL语句无法兼容开源数据库MYSQL,这提高了一部分开发者的学习成本,我们正在努力改进。
TDSQL整体兼容Oracle成都较低,这提高了部分业务系统改造成本,我们正在积极与业务系统开发商沟通解决方案。
获奖情况
1、2019年,荣获《金融电子化》 2019金融科技创新突出贡献奖——“开发创新贡献奖”;
2、2019年,TDSQL与微众银行合作研发的“基于分布式架构的同城多中心多活架构”荣获央行年度“银行科技发展奖”二等奖;
3、2019年,荣获中国国际金融展“金鼎奖——年度优秀金融科技解决方案奖”;
4、2018年,获得IT168颁发的”技术卓越奖“;
5、2018年,在数据中心联盟第七批大数据产品评测中,以47项通过的优异成绩成为DCA首批分布式数据库认证产品。