金融IT
作者金融IT·2017-11-17 14:38
其它·金融企业

华泰证券分布式数据库的探索与应用

字数 2297阅读 5426评论 0赞 5

文/华泰证券 管文琦

长期以来,Oracle数据库在国内券商业务系统中处于垄断地位,为响应国家“自主可控”的信息安全战略,打破券商行业对Oracle数据库的依赖,华泰证券公司在国内券商中率先大范围使用开源Mariadb数据库代替Oracle商用数据库,承载重要业务生产系统。

2015年,华泰证券正式启动建设开源数据库平台,代替Oracle商用数据库,推行基于X86平台和非集中存储架构的关系型开源数据库建设方案,经过一年多的探索和实践,平台承载了大量重要生产业务系统,成功的支撑了业务的高速发展,华泰证券在积极探索自主可控道路上迈出了坚实一步。

一、平台建设背景

国内传统金融行业的重要生产系统主要依靠‘IOE’平台提供技术支撑,即Oracle数据库运行在IBM小型机和EMC提供的集中存储之上。Oracle作为业内关系型数据库的翘楚,具有很强的SQL并发处理能力和良好的性能,优秀的高可用架构和数据安全保障。IBM小型机具有极其强大的单机处理能力,以目前高端的X86 PC服务器能力,也只能望其项背。EMC为代表的集中式存储服务器具有强大的吞吐能力,同时也能够为数据库提供强大的数据安全保证,同时也是RAC等高可用架构中的重要支撑组件。 建设基于X86平台和非集中存储架构的关系型开源数据库,就必须达到如下目标:具有类似小型机的强大的处理能力;具有较强SQL处理能力;具有较好的高可用能力和数据安全保障;具有较好的IO能力。

二、华泰证券现有分布式数据库平台架构

华泰证券公司选用MySQL的重要的社区版本Mariadb,作为数据库平台的基础组件。

1、利用数据库中间件实现水平扩展能力:

华泰证券公司开发应用了数据库中间件,实现了数据库的平行扩展能力。数据库中间件是一个实现了MySQL协议的Server,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生(Native)协议与多个MySQL服务器通信。其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里。

数据库中间件拦截了用户发送过来SQL语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。

通过数据库中间件,可以大大增加数据库的水平扩展能力。通过增加数据库节点,实现处理能力的提升,IO吞吐能力的提高,承载更多的SQL并发,达到支撑业务发展的需要。

2、利用第三方开源Galera技术,实现数据安全及系统的高可用:

互联网行业普遍使用的高可用方案是:以主从复制及在此基础上的多线程半同步,而金融行业对数据要求较高,无法承担数据丢失风险。

经过技术调研,我们在2015年选择了当时在国内较少使用的第三方开源技术,Galera同步复制技术,作为华泰证券主要的容灾技术。Galera具有先进的设计理念:真正的多主架构,任何节点都可以进行读写、同步复制,各节点间无延迟且节点宕机不会导致数据丢失、没有切换时间、支持InnoDB存储引擎等。

利用Galera技术结合华泰的数据库中间件,我们建设同城的双活数据中心,通过在同城第三点建设仲裁节点,实现两个主要生产机房可以同时对外提供服务。让任意一个机房因为某种原因不能对外服务时,第二个机房可以继续对外提供服务。

目前华泰证券已经有大量业务系统使用分布式数据库平台进行业务支撑,包括交易、客户财富、互联网金融等,业务系统单表记录数最高超过30亿条,响应延时保持在10ms以内,最大峰值TPS达到5000,有效支撑了业务的发展。

三、未来规划
随着业务的不断发展,对数据库平台的要求原来越高,数据库中间件加关系型数据库这种数据架构仍有诸多的局限性,怎样更好的支撑业务系统,成为我们今年来的课题。
随着近年来大数据业务蓬勃发展,其分布式的先进理念得到了整个行业的认可,我们也在探索如何将大数据的理念融合到关系型数据库中,实现快速的数据库弹性扩展。
经过一年多的技术调研,我们在内部研究和初步使用了一种基于Google Spanner / F1论文实现的开源分布式NewSQL数据库–TIDB。

它主要由三个组件组成:TIDB server、PD和TIKV cluster,其逻辑结构如下:

微信图片_20171117143617.jpg

微信图片_20171117143617.jpg

TIDB具有很多特点如:SQL支持(和MySQL兼容的)、水平线性弹性扩展、分布式事务、跨数据中心数据强一致性保证、故障自恢复的高可用等。其中最主要的是:

1、水平扩展

理论上无限水平扩展是TiDB的一大特点,水平扩展包括两方面:计算能力和存储能力。TiDB Server负责处理SQL请求,随着业务的增长,可以简单的添加TiDB Server节点,提高整体的处理能力,提供更高的吞吐。TiKV负责存储数据,随着数据量的增长,可以部署更多的TiKV Server节点解决数据Scale的问题。

2、高可用

高可用是TiDB的另一大特点,类似于大数据框架,TiDB/TiKV/PD这三个组件都能容忍部分实例失效,不影响整个集群的可用性。 根据业务真实场景,搭建了ITDB集群,并且正在进行容灾、性能、可扩展性等测试,如果测试顺利并投入生产,预期将会给数据库在金融领域的应用带来里程碑式的变革。

展望未来,金融科技将进入一个加速发展的时代,对传统金融行业而言,金融科技带来的不仅仅是挑战,还有机遇。华泰证券将紧紧抓住时代机遇,冲破国外大型厂商的垄断,借助金融科技实现平台技术转型和创新发展,支撑和促进业务的发展。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

最佳实践
不同的领域,都有先行者,实践者,用他们的最佳实践来加速更多企业的建设项目落地。

作者其他文章

相关文章

相关问题

相关资料

X社区推广