导读
趣丸科技集团成立于 2014 年,是一家集兴趣社交、人工智能、电子竞技等业务于一体的创新型科技企业。在 TiDB 社区活动深圳站中,我们邀请到了趣丸科技的数据库专家苏程辉带来了以《NewSQL 分布式数据库选型和实践 - 趣丸基于 TiDB 的实践》为主题的分享。
本文根据分享内容整理,作为趣丸科技数据库和中间件的负责人,苏程辉老师详细地介绍趣丸在选择和实施 TiDB 过程中的痛点、选型考量、实践规模、遇到的问题以及未来的展望。
![趣玩-苏程辉](https://img1.www.pingcap.com/files/2024/05/20240527015818583.png)
趣丸科技作为一家领先的科技公司,面临着海量数据存储、高并发处理、HTAP(混合事务/分析处理)以及业务的弹性灵活扩缩容等挑战。为了应对这些挑战,我们对 NewSQL 分布式数据库进行了深入的选型和实践,最终选择了 TiDB 作为其数据库解决方案。本次分享中,我将详细介绍享趣丸科技在 NewSQL 分布式数据库选型的思考和实践。
![趣丸公司简介](https://img1.www.pingcap.com/files/2024/05/20240527015909235.png)
业务痛点与难点
我们的数据库系统面临着以下主要挑战:
- 海量数据存储:需要存储的数据量巨大,传统的关系型数据库在扩展性上存在局限。
- 高并发:业务特性导致系统需要处理大量的并发请求。
- HTAP:需要同时支持事务处理和复杂查询,对数据库的性能提出了更高要求。
- 弹性灵活的扩缩容:业务的快速变化要求数据库能够灵活地进行扩缩容操作。
- 多 AZ 部署:为了提高业务的可用性和容灾能力,需要在多个可用区(AZ)中部署数据库。
分布式数据库选型
在选型过程中,我们主要考虑了以下几个关键因素:
- 业务需求:包括海量数据存储、支持 MySQL 协议/SQL 查询、按需灵活扩缩容和 HTAP 能力。
- 稳定性:涉及数据一致性、高可用性和容灾能力。
- 成熟度:考量了开源产品、社区活跃度和周边生态。
- 改造成本:包括业务代码的改造成本和研发的使用设计成本。
![数据库选型考虑要素](https://img1.www.pingcap.com/files/2024/05/20240527020710797.png)
我们觉得 TiDB 就像一个开着“自动档”数据库,它通过自动化的分片和负载均衡,让团队无需关注复杂的数据库分表问题,从而更专注于业务逻辑和创新。
为什么选择 TiDB
我们在对比了 TiDB、OB、TDSQL-MySQL 和 PolarDB-X 等分布式数据库产品后,基于以下理由选择了 TiDB:
海量数据存储能力
随着我们业务的快速增长,数据量急剧膨胀,传统关系型数据库在处理大规模数据时遇到了扩展性瓶颈。TiDB 作为一个分布式数据库,其天生的分布式架构能够高效地处理海量数据,很好地满足了我们对数据存储的需求。
高并发处理
我们的业务特性要求数据库系统能够处理大量并发请求。TiDB 的分布式设计允许其通过水平扩展来提升系统的并发处理能力,从而保证在高负载情况下的稳定性和响应速度。
HTAP 支持
现代企业不仅需要处理事务性数据,还需要对数据进行实时分析。TiDB 支持 HTAP,能够同时处理事务型和分析型工作负载,这对于我们来说是一个重要的需求点,因为它可以减少数据在不同系统间的迁移,降低延迟,提高效率。
弹性灵活的扩缩容
业务需求的不断变化要求数据库能够快速响应扩缩容的需求。TiDB 的在线弹性扩缩容能力使得我们可以根据业务需求灵活调整资源,而无需担心服务中断或性能下降。
多 AZ 部署
为了提高业务的可用性和容灾能力,我们需要在多个可用区(AZ)中部署数据库。TiDB 支持多 AZ 部署,增强了数据的可靠性和系统的容灾能力。
兼容 MySQL 协议/语法
TiDB 兼容 MySQL 协议和 SQL 语法,这使得我们可以无缝迁移现有的 MySQL 业务到 TiDB,减少了迁移成本和技术改造的复杂性。
开源产品与活跃社区
TiDB 是一个开源产品,拥有活跃的社区支持。这意味着我们可以依赖社区的力量来解决使用过程中遇到的问题,同时也能够根据需要对产品进行定制化开发。
周边生态与迁移/改造成本
TiDB 拥有成熟的周边生态,提供了丰富的工具和集成选项。同时,相比于其他分布式数据库,TiDB 在迁移和改造成本上具有优势,这对于我们来说是一个重要的考量点。
TiDB 当前规模与收益
![趣丸 TiDB 当前规模和收益](https://img1.www.pingcap.com/files/2024/05/20240527020931781.png)
当前规模
- 节点数量:我们的 TiDB 集群已经扩展到 142 个节点,这显示了 TiDB 在水平扩展方面的强大能力,以及我们业务的快速增长。
- 集群数量:拥有 12 套集群,这表明我们能够根据业务需求对数据库资源进行有效的逻辑分割和隔离,增强了系统的稳定性和可管理性。
- 数据量:最大的集群数据量接近 100TB,这一数据量在分布式数据库领域中属于较高水平,充分展示了 TiDB 处理大规模数据的能力。
运维侧收益
- 云原生:TiDB 的云原生特性使得我们能够更加灵活地在云环境中部署和运维数据库,降低了对物理硬件的依赖,提高了资源利用率和系统可维护性。
- MySQL 生态:TiDB 兼容 MySQL 协议和 SQL 语法,使得我们能够无缝迁移现有的 MySQL 业务,同时享受到 TiDB 作为分布式数据库带来的优势,而无需对现有的技术栈做出较大改动。
- 可靠性:分布式架构和多副本机制增强了数据的可靠性,减少了单点故障的风险。
- 存储成本:TiDB 的数据压缩和存储优化技术有助于降低存储成本,尤其是在处理大规模数据集时,这一优势尤为明显。
研发侧收益
- 架构简单:TiDB 的分布式设计简化了数据库架构,使得研发团队可以更专注于业务逻辑的实现,而不是数据库的维护和管理。
- 数据实时性:TiDB 的 HTAP 能力保证了数据的实时性,对于需要快速响应的业务场景尤为重要。
- 业务创新:研发团队可以将更多的精力投入到业务创新上,而不是数据库的运维和调优,从而加快产品的迭代速度和市场响应。
未来展望
我们对 TiDB 的未来应用和发展方向也提出了展望,包括:
- TiKV 支持 S3 存储(Serverless):期望 TiDB 能够支持 S3 接口的存储,进一步降低存储成本并提高数据管理的灵活性。
- 多租户资源隔离:希望 TiDB 能够提供更好的多租户资源隔离功能,使得更多的小型业务能够高效地共享数据库资源,同时保证各业务间的数据隔离和安全性。
- 可视化管理平台:期望 TiDB 能够提供更为成熟和易用的可视化管理平台,以简化数据库的运维管理工作,提高运维效率。
结语
我们的实践表明,TiDB 作为一个 NewSQL 分布式数据库,不仅能够满足现代企业对数据库系统的高标准要求,而且在处理海量数据、高并发以及 HTAP 等方面展现出了显著的优势。
随着技术的不断进步和产品的迭代更新,我们有理由相信,TiDB 将继续在分布式数据库领域发挥重要作用,助力更多企业实现数字化转型。
目录