写点什么

如何降低架构复杂性,保障全球 900 万用户安全可靠投资? | 案例故事之老虎国际 x  TiDB

  • 2023-04-12
    北京
  • 本文字数:2383 字

    阅读完需:约 8 分钟

如何降低架构复杂性,保障全球900万用户安全可靠投资? | 案例故事之老虎国际 x  TiDB

券商是一个古老的行业,发展至今已经历了三个时代:第一代券商为传统券商,在线下交易大厅进行买卖;第二代券商开始了电子化进程,从线下到线上进行了浅层服务的转移,改善了用户体验,提高了金融服务的效率;第三代券商更多强调“科技赋能”,在功能业务上更创新、更多样,且存在完整的互联网基因,业务依靠线上平台,拥有底层自研能力,如交易、风控等系统。

 

老虎国际作为第三代券商的代表,是一家全球知名的国际化券商,在新加坡、美国、中国香港、澳大利亚等地持有 59 张牌照或资质,在全球多地展业。投资者在老虎国际可通过一个账户交易美股、港股、A 股(沪港通/深港通)、星股(新加坡股)、澳股(澳大利亚股)、期货、基金等全球主要市场的金融产品,享受一流的投资体验。

 

老虎国际自主研发的交易平台 TigerTrade,累计交易规模在三年内突破 10000 亿人民币,创下互联网券商冲击万亿交易规模最短用时。2019 年 3 月,老虎国际在美国纳斯达克挂牌上市,目前拥有全球近 900 万用户,年交易规模超 2000 亿美元。

业务挑战


作为一家全球化的券商,每个国家证券行业发展情况不同,数据合规要求也存在差异,比如新加坡有 PDPA,欧盟有 GDPR,美国有 CCPA 等,甚至不同国家业务特点也大为迥异。在每个国家/地区都本地部署业务系统显然并不现实,老虎国际采用跨地区的混合云架构为全球用户提供支撑,解决在数据架构、数据安全、数据合规等方面所面临的的全球挑战。

 

同时,老虎国际的数据架构复杂度非常高,底层系统包含 Java、Python、Go 等不同的语言,中间件、数据库、大数据等都是异构场景,导致维护成本和研发效能都大打折扣。

 

此外,在老虎国际证券业务发展过程中,业务波动性是常态,这也使得其核心业务--后台账本系统,经常面临数据库的性能挑战。后台账本是用户在老虎国际参与证券交易时,如产品购买、出入金、IPO 打新、公司行动、被收费等各个业务版块,针对用户行为明细数据记录的系统。账本每天需要记录大量的用户流水,并根据用户行为生成用户每日账单。如果账本出现问题,直接关系到用户体验和投资收入。

 

2020 年 3 月,美股遭遇了前所未有的震荡,开盘即暴跌,触发一级熔断机制,暂停交易 15 分钟。老虎国际的数据库也经历了前所未有的数据查询量,查询数量曲线呈指数级增长,原有的 MySQL 遇到了极大瓶颈。证券交易还要求数据库具有金融级数据强一致性,并具备灾备能力,一旦某个机房宕机,另一个机房可以立刻启用。

 

数据安全性、数据可用性和数据架构复杂度成为老虎国际国际化业务的三大挑战。出于对开源技术的信任和认同,老虎国际很早就在数据中台业务中应用了 TiDB 3.0 版本,此后一路升级到 TiDB 5.0,解决了业务挑战与数据安全挑战。

 

后台账本数据库迁移

 

老虎国际的后台账本底层数据架构由多套集群组成,单集群数据量接近 2TB,MySQL 数据库虽然具有较好的稳定性和负载能力,但为了应对不断增长的数据量只能采取分库分表方案,难以保证跨分片的事务一致性,跨库的 Join 关联查询性能较差,数据库多次扩展难度和维护量极大。2021 年,老虎国际的运维与研发团队对主流的冷热数据分离、分库分表、分布式数据库等方案进行选型与性能压测。在压测中,TiDB 在 P95 延迟、TPS 事务指标、QPS 等方面整体性能都强于 MySQL,并且 TiDB 的性能可以随着节点水平扩展线性提升,解决性能和单机资源瓶颈问题。压测增强了老虎国际技术团队的信心,最终决定将后台账本的 MySQL 集群也迁移到分布式数据库 TiDB 上。




由于 TiDB 拥有非常丰富的生态组件,整个迁移过程十分顺利。为了保障业务稳定,老虎国际采用了新旧数据库同时写入的方式,通过 DM 将 MySQL 数据同步至 TiDB 集群,逐渐切换一部分读流量到 TiDB,整个迁移历经近 3 个月,最终全部切换到 TiDB。同时,老虎国际也制定了“逃生方案”,通过 TiCDC 将数据同步到下游的一个 MySQL 集群,一旦发现 TiDB 有问题可以随时切换。在经过半年多业务的考验后,最终技术团队将该 MySQL 集群关闭。



由于不同国家对于监管、数据可用性,以及 SLA(服务级别协议)要求非常高。在同城,老虎国际还利用 TiDB 的灾备架构,通过 TiCDC 在灾备机房部署了一个 TiDB 集群作为灾备方案,当主机房发生故障时,服务器负载均衡自动切换到备用机房,保证数据服务高可用,整体延迟达到分钟级甚至更低。

 

为什么选择 TiDB?

 

对于券商而言,数据处理速度与成本是紧密相关的。MySQL 的分库分表维护成本较高,对业务的限制也比较多。而 TiDB 的分布式架构无需分库分表,大大简化技术栈,降低了运维难度,通过在线水平扩展有效解决底层数据存储扩容难题;TiDB 的金融级高可用特性,可靠的灾备、数据恢复方案保障了老虎国际证券业务稳定运行;同时,TiDB 高度兼容 MySQL,有着成熟的 MySQL 迁移方案,研发侧大部分代码无需改动,即可顺利完成整个迁移工作,大大降低迁移成本。

 

业务收益

 

现在,老虎国际的数据架构整体可以分为三部分:第一,将分布在各业务系统甚至 APP 内的数据进行收集;第二,进行数据处理;第三,将数据持久化存储。非敏感数据通过 DM 和 CDC 快速同步到 TiDB,敏感数据通过 Flink 进行脱敏后输入 TiDB,利用 TiDB HTAP 的能力构建数据中台和实时数仓,既保证 OLAP 查询时系统的稳定性,又保证 OLTP 的快速分析,两者同时存在又保证隔离,兼顾安全和稳定。最后,老虎国际还将 TiDB 作为类似数据湖的概念提供数据源给下游的 HDFS 使用,对外提供更多数据服务。



从前,老虎国际的数仓只能满足 T+1 的数据分析,通过 TiDB ,老虎国际实现了实时同步、实时分析,将延迟降低到了 5 秒钟;同时,TiDB 的性能实现了比较快的数据接入,之前 Hbase 中只有 4,000+ 表,TiDB 目前已经达到 80,000+ 表;此外,使用 TiDB 后,老虎国际将数据的全量同步变成增量同步,极大减少了网络带宽压力。 TiDB 统一了两个大数据分析场景,提升了易用性,并节省了 40% 的资源,实现了降本增效。

2023-04-12 10:113949
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 532.2 次阅读, 收获喜欢 1976 次。

关注

评论

发布
暂无评论
发现更多内容

万字长文——Go 语言现代命令行框架 Cobra 详解

江湖十年

golang 后端 命令行 命令行工具

Java实现多用户即时通信系统

timerring

Java

2023一线大厂 Java 面试八股文大全(整理版)附答案详解!

采菊东篱下

Java 面试

探讨AIGC的崛起历程,浅析其背后技术发展

华为云开发者联盟

人工智能 华为云 AIGC 华为云开发者联盟 企业号 5 月 PK 榜

云服务器管理用什么软件好?行云管家好用吗?

行云管家

云计算 云服务器 云资源 云管理

Java 如何在 Array 和 Set 之间进行转换

HoneyMoose

从原理到应用,人人都懂的ChatGPT指南 | 京东云技术团队

京东科技开发者

人工智能 AI ChatGPT4 企业号 5 月 PK 榜

怎样成为优秀的后端工程师

越长大越悲伤

后端、 java‘

2分钟快速上手流水线的创建与运行

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

网易伏羲RL4RS荣获SIGIR2023 Resource Paper,推动深度学习技术创新

网易伏羲

Java 如何在 Array 和 List 之间进行转换

HoneyMoose

简单好用的网页设计工具:EverWeb中文版

真大的脸盆

Mac 网页设计 Mac 软件 网页布局 网页制作

什么是人工智能领域的深度学习?

汪子熙

人工智能 深度学习 强化学习 三周年连更

LED显示屏行业发展步伐

Dylan

发展 科技 LED显示屏

只需要六步!快速开启专属的风控系统

Geek_2d6073

持续交付下的分层自动化测试

单东东

DevOps 持续交付 持续测试 测试自动化 junit5

小程序开发中的插件、组件、控件,傻傻分不清楚

没有用户名丶

使用NineData定制企业级数据库规范

NineData

数据库 dba 企业管理工具 数据库开发工具 企业级数据库规范

平台工程助力企业提升研发效能

SEAL安全

研发效能 平台工程

面试前必刷!Java高级工程师1380道面试题(附答案)分享

架构师之道

Java 面试

PAG动效框架源码笔记 (一)概览

olinone

ios Android; 特效

关于华为MetaERP,我说几句

SAP虾客

oracle 华为 SAP metaerp

ChatGPT会对我们日常生活带来什么影响?这些技术会改变我们学习阅读工作方式吗?| 社区征文

汀丶人工智能

人工智能 ChatGPT 人工智能ChatGPT 吗? 三周年征文

SET智能合约量化系统app开发案例

薇電13242772558

合约量化 量化交易

使用MASA全家桶从零开始搭建IoT平台(三)管理设备的连接状态

MASA技术团队

IoT MASA .NET 7

文盘Rust —— rust连接oss | 京东云技术团队

京东科技开发者

rust OSS 对象存储 rust语言 企业号 5 月 PK 榜

万字长文详解如何使用Swift提高代码质量 | 京东云技术团队

京东科技开发者

swift 代码质量 代码质量检测工具 京东技术 企业号 5 月 PK 榜

上海国家会计学院刘勤:事项法会计支撑企业更好地应对不确定性

用友BIP

如何使用apache的ab压力测试小工具传参数

北桥苏

ab测试 A/B 测试

用Leangoo领歌Scrum敏捷开发工具管理产品路线图?

顿顿顿

Scrum 敏捷开发 敏捷项目管理 scrum敏捷工具

如何降低架构复杂性,保障全球900万用户安全可靠投资? | 案例故事之老虎国际 x  TiDB_开源_TiDB技术团队_InfoQ精选文章