QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

如何降低架构复杂性,保障全球 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:114001
用户头像
刘燕 InfoQ高级技术编辑

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

关注

评论

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

DataSimba推出微信小程序,DataNuza接受全场景考验? | StartDT Hackathon

奇点云

数据中台

行业案例|数字化经营底座助力寿险行业转型

Kyligence

数字化转型 Kyligence

API、ETL、ESB/MQ 已成明日黄花?时代为何需要一个全新的实时数据架构?

tapdata

开源 数据集成 实时数据 Tapdata架构 实时数据平台

“未来办公”三大新趋势:分布式、移动、人工智能辅助

BeeWorks

如何在软件研发阶段落地安全实践

华为云开发者联盟

云计算 后端 软件开发 安全发布

浅尝不辄止系列之试试腾讯云的TUIRoom(上)

为自己带盐

7月月更 TUIRoom

应用实践 | 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设

SelectDB

数据库 数据仓库 架构演进 Doris

微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹

北京好雨科技有限公司

Kubernetes 云原生 PaaS 容器云 rainbond

使用高斯Redis实现二级索引

华为云开发者联盟

数据库 后端

HTML5网页3D场景制作之Three.js初体验-制作3D字体

迷彩

前端 3D three.js 7月月更

让这个 CRMEB 单商户微信商城系统火起来,太好用了!

CRMEB

客户案例|华律网,通过观测云大幅缩短故障定位时间

观测云

99%的人都不知道|私有化部署还永久免费的即时通讯软件!

BeeWorks

2022如何评估与选择低代码开发平台?

优秀

低代码 低代码平台

九章云极DataCanvas公司获评36氪「最受投资人关注的硬核科技企业」

九章云极DataCanvas

人工智能 投资人 36氪 九章云极DataCanvas 硬科技

企业即时通讯软件是什么?它有哪些优势呢?

BeeWorks

RISCV64

贾献华

7月月更

九章云极DataCanvas公司摘获「第五届数字金融创新大赛」最高荣誉!

九章云极DataCanvas

创新 数字金融 九章云极DataCanvas

AIRIOT助力城市管廊工程,智慧物联守护城市生命线

AIRIOT

低代码 物联网 低代码,项目开发

智慧物流平台:让海外仓更聪明

BeeWorks

你真的理解粘包与半包吗?3分钟搞懂它

C++后台开发

网络编程 网络协议 TCP/IP 后端开发 C++开发

低代码助力企业数字化转型会让程序员失业?

行云创新

程序员 云原生 软件开发 低代码 数字化转型

如何选择合适的自动化测试工具?

禅道项目管理

工具 自动化测试

开源重器!九章云极DataCanvas公司YLearn因果学习开源项目即将发布!

九章云极DataCanvas

人工智能 开源项目 #Github 因果学习 #工具包

Python 入门指南之数据结构

海拥(haiyong.site)

Python 7月月更

Kubernetes DevOps CD工具对比选型

行云创新

Docker DevOps 云原生 k8s pod

【Unity Shader】插入Pass实现模型遮挡X光透视效果

萧然🐳

游戏开发 Unity 7月月更 shader

博睿数据入选《2022爱分析 · IT运维厂商全景报告》

博睿数据

博睿数据 性能监测 智能运维AIOps

鸿蒙智能家居【1.0】

坚果

HarmonyOS OpenHarmony 7月月更

Linux的小知识-curl命令

技术小生

Linux curl 7月月更

Meta Force原力元宇宙系统开发佛萨奇模式

薇電13242772558

智能合约

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