免费试用
作者:赵明中
案例实践
2024-05-17

本文作者:赵明中,成都大淘客科技有限公司数据库架构师

导读

成都大淘客科技有限公司致力于打造极具影响力的数字化选品服务平台,为所有淘客提供安全稳定、方便高效的技术支持和解决方案。本文根据 TiDB 社区线下地区活动成都站上赵明中老师的演讲实录进行整理,深入探讨成都大淘客科技有限公司如何将复杂多样的数据架构整合至 TiDB 中,实现数据库架构的优化和性能的显著提升。

现状与挑战

成都大淘客科技有限公司致力于打造极具影响力的数字化选品服务平台,为所有淘客提供安全稳定、方便高效的技术支持和解决方案。目前随着用户量、业务量的激增,我们数据库的性能也在面对严峻挑战。

大淘客数据库应用情况

我们的业务涵盖了高效选品、直播带货等互联网新兴场景,服务于百万级 C 端用户。然而,随着业务量与用户量的激增,我们使用 MySQL 做为核心数据库开始显现出其局限性:

MySQL数据库弊端
  • 扩缩容困难:我们希望通过流量监测对数据库进行实时动态扩缩容,而 MySQL 在这方面实现难度巨大。
  • 高可用性不足:主流的高可用方案如 MGR、MHA、PXC 等,都需要人工或脚本介入,且稳定性有待提高。
  • 超大表处理:随着数据量的增长,MySQL 在处理超大表问题时遇到了性能瓶颈。

我们到底需要什么样的数据库

在深入分析了我们的业务需求后,我们认为理想的互联网行业数据库应具备以下特性:

需要什么样的数据库
  • 支持事务:必须支持 ACID 事务,以保证数据的一致性和完整性。
  • 动态扩缩容:能够根据业务流量实时调整资源,以优化成本。
  • 兼容主流中间件:能够与 Elasticsearch、Redis、MongoDB、Kafka 等组件无缝对接。
  • 原生高可用:不需要额外的中间件即可实现高可用性。
  • 高吞吐高并发:能够应对互联网业务的高并发场景。
  • 良好的社区生态:拥有活跃的社区支持和丰富的文档资源。

为什么选择 TiDB?

经过深入的市场调研和技术测试,我们选择了 TiDB 作为新的数据库解决方案。以下是 TiDB 吸引我们的关键因素:

  • 高度兼容 MySQL:TiDB 兼容 MySQL 5.7、8.0 协议,支持 MySQL 命令行客户端连接和程序开发接口,使得从 MySQL 迁移到 TiDB 变得平滑。
  • 细维度的弹性伸缩:TiKV、TiDB Server、PD 三大组件均支持动态扩缩容,能够灵活应对业务流量变化。
  • 多副本模式下的 ACID 保证:通过 Raft 协议、2PC 协议、乐观锁、MVCC 等技术,TiDB 在多副本模式下依然能保证事务的 ACID 特性。
  • 良好的生态及周边:TiDB 提供了数据迁移工具 DM、Binlog 数据同步架构、增量同步工具 TiCDC 等,构建了完整的数据库生态。

TiDB 的性能测试

在性能方面,TiDB 展现出了令人信服的表现:

TiDB 性能测试 1 TiDB 性能测试 2 TiDB 性能测试 3 TiDB 性能测试 4
  • Point Select 性能:在高并发测试中,TiDB 能够达到 550,000 的 TPS,证明了其出色的查询性能。
  • Update Non-index 性能:在更新非索引列的场景下,TiDB 的 TPS 达到了 200,000,显示出高效的更新能力。
  • Update Index 性能:即使在更新索引列的情况下,TiDB 依然能够保持近十万的 TPS,这在分布式数据库中是难能可贵的。

TiDB 部署体验

TiDB 的部署过程同样令人印象深刻,足够简洁高效:

TiDB 部署体验
  • 集群配置:通过 TiUP 工具,我们可以快速配置 TiDB 集群,无需复杂的手动设置。
  • 校验与自动修复:TiUP 提供了部署前的校验功能,能够自动修复多数配置问题,简化了部署流程。
  • 运行管理与系统监控:TiDB 的监控系统提供了全面的运行管理工具和系统监控,使得数据库运维变得简单高效。

数据库架构改造

数据库架构改造图

改造前架构

在改造前,成都大淘客科技有限公司的数据库架构(包括但不限于):

  • MySQL:作为核心数据库存储重要数据。
  • RDS:用于较为独立的业务功能。
  • Elasticsearch:用于搜索和分析订单数据。
  • Redis:作为缓存数据库,存储频繁访问的数据以提高性能。
  • MongoDB:用于存储非结构化或半结构化数据。
  • Kafka:消息队列系统,用于处理数据采集和中转任务。
  • Clickhouse:用于存储埋点数据并进行大数据分析。

改造后架构

改造后的架构以 TiDB 为核心,可能包括以下组件:

  1. TiDB Server:负责处理 SQL 请求和事务处理。
  2. TiKV:分布式存储引擎,负责存储数据并提供高并发和高可用性。
  3. Placement Driver (PD):负责集群的元信息管理和调度任务。
  4. TiDB Data Migration (DM):数据迁移工具,用于从 MySQL 迁移数据到 TiDB。
  5. TiDB Binlog:用于数据同步和增量备份。
  6. TiCDC:增量同步工具,用于实时数据同步和流处理。

改造关键步骤

  1. 评估和规划:分析现有数据库架构的性能瓶颈和业务需求,规划迁移到 TiDB 的蓝图。
  2. 环境准备:部署 TiDB 集群,包括所有必要的 TiDB Server、TiKV 和 PD 节点。
  3. 数据迁移:使用 DM 工具将 MySQL 中的数据迁移到 TiDB,确保数据的完整性和一致性。
  4. 性能优化:根据业务场景对 TiDB 进行调优,包括索引设计、查询优化等。
  5. 系统监控与自动化:设置系统监控,利用 TiDB 的自动化工具进行日常运维。
  6. 扩展与伸缩容:根据业务流量和数据量的变化,动态调整 TiDB 集群的规模。
  7. 安全性和合规性:确保新的数据库架构符合安全性和合规性要求。

改造效果预测

  • 基建成本:预计增加 15%,主要是由于 TiDB 集群的部署和运维成本。
  • 抗风险能力:预计提升 70%,得益于 TiDB 的高可用性和分布式特性。
  • 整体性能:预计提升 90%,主要得益于 TiDB 的高性能和细粒度的弹性伸缩能力。

我们预计,通过 TiDB 的转型,我们的基建成本将提升 15%,但抗风险能力将提高 70%,整体数据库性能将提升 90%。这一转型将为我们带来显著的业务价值。

最终效果预测

结语

在成都大淘客科技有限公司,我们计划通过采用 TiDB,实现数据库性能的显著提升。TiDB 的高性能、易扩展性、强兼容性以及活跃的社区支持,是我们选择它作为数据库升级路径的主要原因。我们相信,随着技术的不断进步,TiDB 将继续助力我们推动业务的持续增长和创新。

通过这次转型,预计我们不仅提升了数据库的性能和稳定性,也为未来可能的技术变革做好了准备。TiDB 作为国产数据库的佼佼者,已经在多个方面展现出其优势,我们相信它将在未来的数据库市场中占据重要地位。

金融行业内容专区上线,为金融机构数据库选型和应用提供深入洞察和可靠参考路径。