共计 2282 个字符,预计需要花费 6 分钟才能阅读完成。
作者:PingCAP 封小明
通过 TiDB 连贯寰球极限场景和翻新场景,是 PingCAP 长期保持的国际化策略。目前,在寰球已有超过 3000 家企业抉择 TiDB。无论在游戏、金融、物流、互联网还是智能制作等行业,基于规模化 OLTP 扩容、实时 HTAP 剖析等利用场景,PingCAP 服务用户的脚步曾经从中国延长到寰球,笼罩日本、亚太、北美和欧洲等各个区域。
本文为“寰球极限场景与翻新场景应用 TiDB 的最佳实际”专题第二篇,分享 TiDB 如何为 Bolt 1 亿用户提供超强可扩展性与弹性,保障其服务的全球化经营。
Bolt 是一家总部位于爱沙尼亚,提供城市交通和运送服务的出行互联网公司,业务畛域涵盖网约车、摩托车租赁、汽车共享和餐饮外卖等,是优步在欧洲的强劲竞争者。Bolt 在 45 个国家和地区的 500 多个城市领有超过 1 亿客户,与寰球 300 万多家供应商建设了合作伙伴关系,雇佣了 3000 多名员工。
MySQL 计划面临的次要痛点
作为一家互联网公司,数据对于业务决策和个性化服务具备微小的价值与作用。过来,Bolt 始终应用 MySQL 作为其主数据库计划,并在很长一段时间内运行良好,但随着 Bolt 寰球业务的快速增长,MySQL 开始无奈应答其一直减少的数据量。
Bolt 外部有许多产品团队,开发和治理着数千个微服务。这些微服务在 300 多个 schema 中解决着数百 TB 的数据,而且数据量还在一直增长。MySQL 很难扩大到解决如此多的数据。为了尝试解决这些挑战,Bolt 开始尝试手动分表并增加列。但这个工作十分耗时,加载 1TB 的表须要一个星期或更长时间。此外,当他们运行 ALTER(DDL)等命令或进行备份时,还会呈现操作问题。
为了反对其上亿客户,Bolt 对系统的失常运行工夫和劫难复原有着十分严苛的要求。但基于 MySQL 的旧解决方案太软弱,无奈在劫难中顺利运行。即便他们在 MySQL 上部署了像 Galera 这样的多主机集群来进步零碎的可用性,偶然还是会失落数据。
为什么抉择 TiDB?
为了解决以上痛点,Bolt 花了很多工夫摸索包含 Vitess 在内的数据库解决方案。但 Vitess 须要对 Bolt 的应用程序进行许多更改,业务革新简单——且它与 MySQL 有着相似的操作问题。此外,Vitess 对 MySQL 兼容性很差。最终,Bolt 抉择了开源的分布式 NewSQL 数据库 TiDB。
开源
TiDB 从第一天起就是一个开源的数据库。每一行代码都是公开通明的,所以 Bolt 能够依据本人的须要扭转、批改和定制代码,而 TiDB 依然能够工作。
程度可扩展性
TiDB 具备简直有限的程度可扩展性。只需通过主动增加或删除存储节点,就能够轻松解决高达数百 TB 的数据峰值或低谷。此外,TiDB 采纳了计算、存储拆散架构,因而 Bolt 能够依据其一直变动的业务需要别离扩大或放大计算和存储资源,这有助于 Bolt 管制其数据库和运维老本。
高可用性
TiDB 应用 Raft 算法来确保数据在 Raft 组的整个存储中高度可用并平安复制。TiKV 是 TiDB 的存储节点,数据在 TiKV 节点之间冗余复制,并搁置在不同的可用区中,以避免机器或数据中心产生故障。TiDB 提供主动故障转移,从而确保零碎失常运行工夫。此外,TiDB 提供了多种劫难复原解决方案,每种解决方案都实用于不同的场景,老本灵便。
MySQL 兼容性
TiDB 与 MySQL 高度兼容,因而 Bolt 的工程团队无需革新就能够很容易将数据迁徙到 TiDB。大大节俭了工夫与老本。此外,TiDB 能够与 Kafka 和 Kurbenetes 等次要技术堆栈良好集成,也能够在 AWS 上完满运行。
云原生
TiDB 基于云原生架构,充分利用了云的可扩展性和弹性,并被设计成能够在云、公有环境或混合环境中工作。TiDB 的云原生能力容许用户依据须要进行扩大,以满足一直变动的业务需要,而老本始终保持在管制范畴内。
此外,当将 TiDB 与 Kubernetes 联合应用时,用户还能够:
- 确保开发和部署环境的一致性;
- 依据须要实例化一个新的节点,无论是为了适应增长,还是为了取代一个失落的节点。
极具老本效益
同时,TiDB 也是一个具备绝佳老本效益的解决方案:
- 弱小的数据压缩能力 升高了存储老本。例如,一个 4TB 的 MySQL 表在迁徙到 TiDB 后能够压缩到 2TB 以下。依据 Bolt 的教训,TiDB 的均匀压缩率在 3 倍左右。依据数据类型,速率可能会略有变动——有时会更多,有时会更少;
- 具备简化的 HTAP 架构,能够同时处理事务和剖析工作负载。
- 能够依据业务需要,别离程度扩大或放大 计算和存储资源。
- 易于操作和保护,大大降低了保护老本。
- 具备良好的 MySQL 兼容性,迁徙过程安稳轻松。
- 反对应用 Graviton2(Arm64)在 Amazon Elastic Kubernetes 服务(EKS)上进行灵便部署,从而实现更好的性价比。
TiDB 技术支持
在部署、迁徙和应用 TiDB 的过程中,Bolt 失去了 TiDB 原厂工程师的高效反对,并对 TiDB 进行了非凡定制的革新。
截至 2022 年 10 月,Bolt 曾经部署了七个 TiDB 集群,存储了数十 TB 的数据和数百个架构。
- 4 个 TiDB 集群运行于生产环境中,包含余额、计费、订购和物联网(IoT)服务。
- 2 个 TiDB 集群用于开发或预生产的 alpha 和 beta 集群。
- 1 个 TiDB 集群部署在斯德哥尔摩的上游集群,用于容灾。
将来瞻望
将来,Bolt 打算将更多业务依赖 TiDB,包含将更多集群从 MySQL 迁徙到 TiDB,应用 TiDB 的变更数据捕捉工具 TiCDC 在 AWS 上设置多区域集群进行故障转移,并尝试 TiDB 的列式存储 TiFlash 进行实时剖析查问,取得更加实时的数据洞察。