本文汇总了马上消费金融、360 智慧商业以及趣丸科技三家公司在数据库领域的实践经验。文章探讨了在高并发和跨中心热备等场景下,TiDB 如何展现出其在扩展性、高可用性方面的优势。通过实际案例,展示了 TiDB 在不同业务场景下的应用效果,以及如何帮助企业优化数据架构和提升运营效率。
TiDB vs MySQL:
马上消费金融在高并发、
跨中心热备场景下的实践探索
消费金融机构
为什么使用 MySQL?
MySQL 是一个典型的关系型数据库,经过多年深耕发展,已成为业内应用最广泛的数据库。它提供了关系型数据库里典型的功能,如数据安全性、事务处理、高可用以及性能优化等。其稳定性经过多年的考验,不论中小型企业,还是传统金融行业,都有很多的应用场景。
大家都知道金融机构对数据安全性的要求非常严苛,MySQL 之所以能够成为金融行业的选择对象,首先是因为它具有很高的可靠性和稳定性,这对于涉及大量交易记录、账户管理和风险管理的金融行业来说至关重要。其次是扩展性、性能表现、成本效益以及安全合规。这里重点介绍扩展性,MySQL 支持主从复制、读写分离、集群部署等多种高可用架构设计,可以有效应对金融行业日益增长的数据处理需求和并发访问量。但 MySQL 如果不做分库分表,就只能通过增加从库的方式进行只读扩展,写扩展需要做分库分表,实现难度大大增加。
在使用 MySQL 过程中
遇到的问题
MySQL 存在很多局限性,第一是大数据集处理,第二是高并发处理,第三是高可用与容灾恢复。前两个问题可以归结为一个,就是无法突破单机性能瓶颈的问题。高可用和容灾恢复同样也存在问题,比如异步复制,如果主节点的压力过大,就会存在主从延迟。如果选择高一致性,比如 MGR,那性能就会有损耗,这是一个两难的选择。
基于这三个痛点,我们在日常使用 MySQL 的时候,都会经历过三个阶段:首先是单机多库拆分,单库多表拆分,然后到冷热数据分离,最后到表数据分片。这三个处理方案其实都有各自的缺陷,基于这些问题,我们迫切地想要引入分布式数据库。当时,我们做数据库选型主要关注以下几个方面:
● 开源社区活跃度:社区活跃度直接反映了这个数据库的成熟度,以及它在市场上的使用量;
● 读写协议兼容统一:我们之前的所有业务基本都是在 MySQL 上使用,要迁到一款新的分布式数据库,必须要兼容 MySQL 所有协议,尽量降低代码改造量;
● 有明确的服务边界:锚定分布式数据库的使用场景,我不想去挑战数据库的极限,如果这个数据库不支持我的业务场景,那也是不行的;
● 高可用:这款分布式数据库一定要满足业务对 PTO 和 RTO 的要求。
TiDB 与 MySQL 的
关键特性对比:Why TiDB?
基于上述这些选型标准,我们来看 TiDB 的架构特点:
● 首先,TiDB 在数据一致性、可靠性、高可用以及可扩展性等方面表现成熟,与金融行业的属性比较吻合。
● 其次,TiDB 完全能够满足可扩展性和并发要求高的 OLTP 场景。很多行业可能都把 TiDB 用在 OLAP 场景里,但其实对于大并发的 OLTP 场景,TiDB 也是不错的选择。
● 第三,TiDB 满足 HTAP 场景需求,既做 OLTP 业务,也做 OLAP 业务。
基于 TiDB 的这些特性,我们将 TiDB 与 MySQL-MGR 做了关键特性对比。对于 MySQL,我们有完整的 SOP,比如开发规范有严格的标准,数据量必须在什么范围内来使用 MySQL。超过了这个范围,就要去做拆分。此外,哪些参数必须满足,也都形成了严格的规范,比如说关联查询限制在多少个表,这些都是基于 MySQL 的局限性来考虑的。
支持场景类型:MySQL 支持 OLTP 的小并发场景,而 TiDB 对于 OLTP、OLAP 都能够支持。如果落地场景是 SQL 并发小,低延迟的交易系统,MySQL 的性能其实相对 TiDB 来说是要更优一点,而对于对账、跑批、归纳分析,以及并发量比较大的交易场景,TiDB 都有比较大的优势。
数据量要求:我们在生产环境中对数据量的要求是在 2TB 以下时使用 MySQL,大于 2T 小于 200T 使用 TiDB。目前,我们交易系统的数据量要求是在 50T 范围内,超过 50T 做归档的业务必须拆出去。在 TPS 层面,小于 2, 000 的 TPS 在 MySQL 上表现相对良好。如果业务增长特别快,必须在线扩展,对于 MySQL 来说相对比较困难,TiDB 就可以支持在线横向扩展。
单表大小:对单表的限制,我们现在一般在 MySQL 层面要求 5,000w 以内,在 TiDB 层面不会做太多限制。
总体而言,MySQL 在单机性能和成熟度上有明显优势,而 TiDB 在处理分布式、高并发、大规模数据场景下展现出卓越的扩展性和强一致性保证。
真实场景下的应用实践
我们对 TiDB 的应用实践,主要分为以下四个场景:
总结来说,MySQL 在单机性能和成熟度上有明显优势,这毋庸置疑,毕竟 MySQL 在各个行业都有使用场景,而且深耕了多年。而 TiDB 在处理分布式、高并发、大规模数据场景下展现出卓越的扩展性和强一致性保证。TiDB 的 Raft 协议、多副本原理对一致性都有不错的保证。两者在具体使用时应根据项目需求、数据规模、团队技能等因素综合考量。由于金融行业的特殊性,数据库的选择还要满足监管要求、稳定性、性能、安全性和技术支持等多个因素。
点击此处丨查看原文
360 智慧商业 x TiDB
数据架构革新驱动广告业务高效运作
360 商业化业务线的总体概览
我们商业化业务线主要有广告创意与策划、媒体请求、竞价排名、广告计费、广告主报表和持续优化等关键环节。在这些环节中,TiDB 在处理大规模数据和海量高并发请求场景承担重要的角色。
● 广告创意与策划阶段
● 媒体请求与竞价排名
● 广告计费与报表
TiDB 在多种不同需求下的
架构演进及价值
我们在早期数据库架构采用 MySQL 分库分表方案设计,解决业务发展在亿以上级别数据规模阶段 OLTP 事务处理能力,但随着业务增长下,分库分表方案中逐步暴露诸多问题亟须解决。
为了更好地适应我们商业化业务的需求,在设计实施 TiDB 架构也经历了一系列的优化和调整。例如,通过引入 DM (TiDB Data Migration)数据迁移同步组件将大规模的各个分片 MySQL 集群中的数据汇总到一套 TiDB 集群中,这样可以使我们能够更高效地处理大规模数据导入和实时计算场景,TiDB 方案显著提升了业务响应时间。
● 存储引擎的选择
● 硬件升级与资源隔离
● 实时计算与 TiFlash 运维问题
● 容灾方案
TiDB 在商业化业务线的使用规模
目前,我们智慧商业已将三套核心业务和 16 套非核心业务接入到了 TiDB 集群中,物理机数量超过 200 台。核心集群在业务高峰时的 TPS 达到 10 万+,QPS 达到 13 万+,数据总量超过 100 TB。
TiDB 为业务线带来的收益
TiDB 的引入为我们商业化业务线带来了显著的收益:
● 提高交付能力:TiDB 能够同时满足 TP 和 AP 的需求,使得业务查询模型更加灵活。
● 水平扩展能力:根据业务规模及特点,可以水平扩缩容存储或者计算节点。
● 降低运维成本:通过提升主机密度,降低了硬件成本约 40%,同时让开发的精力更集中在业务上。
● 完整的生态链:TiDB 提供了从 MySQL 迁移到 TiDB 的完整工具链,如逻辑数据导入导出工具 Dumpling/Lighting、 备份恢复工具 BR、数据迁移同步工具 DM、增量数据同步工具 TiCDC 等。
● 可观测性强:通过 Prometheus + Grafana 的监控方案和 Dashboard(TiDB 图形化界面),可以实时监控集群状态,及时发现并解决问题,提升故障处理效率。
对 TiDB 新版本的展望和期待
我们对 TiDB 新版本充满期待,特别是以下几个方面:
点击此处丨查看原文
趣丸科技(TT 语音)x TiDB
数据库的“自动档”:
NewSQL 分布式数据库选型思考
业务痛点与难点
我们的数据库系统面临着以下主要挑战:
● 海量数据存储:需要存储的数据量巨大,传统的关系型数据库在扩展性上存在局限。
● 高并发:业务特性导致系统需要处理大量的并发请求。
● HTAP:需要同时支持事务处理和复杂查询,对数据库的性能提出了更高要求。
● 弹性灵活的扩缩容:业务的快速变化要求数据库能够灵活地进行扩缩容操作。
● 多 AZ 部署:为了提高业务的可用性和容灾能力,需要在多个可用区(AZ)中部署数据库。
分布式数据库选型
在选型过程中,我们主要考虑了以下几个关键因素:
我们觉得 TiDB 就像一个开着“自动档”数据库,它通过自动化的分片和负载均衡,让团队无需关注复杂的数据库分表问题,从而更专注于业务逻辑和创新。
为什么选择 TiDB
我们在对比了 TiDB、OB、TDSQL-MySQL 和 PolarDB-X 等分布式数据库产品后,基于以下理由选择了 TiDB:
● 海量数据存储能力
● 高并发处理
● HTAP 支持
● 弹性灵活的扩缩容
● 多 AZ 部署
● 兼容 MySQL 协议/语法
● 开源产品与活跃社区
● 周边生态与迁移/改造成本
TiDB 当前规模与收益
未来展望
我们对 TiDB 的未来应用和发展方向也提出了展望,包括:
● TiKV 支持 S3 存储(Serverless):期望 TiDB 能够支持 S3 接口的存储,进一步降低存储成本并提高数据管理的灵活性。
● 多租户资源隔离:希望 TiDB 能够提供更好的多租户资源隔离功能,使得更多的小型业务能够高效地共享数据库资源,同时保证各业务间的数据隔离和安全性。
● 可视化管理平台:期望 TiDB 能够提供更为成熟和易用的可视化管理平台,以简化数据库的运维管理工作,提高运维效率。
点击此处丨查看原文
报名 TiDB 地区交流武汉站
👇 与更多 TiDBer 现场交流 👇
👇 立即咨询 TiDB 企业版 👇