TiDB x Bolt丨超强可扩展性与弹性助力超 1 亿用户畅享出行服务

数据库
MySQL
0
0
作者:PingCAP 封小明 通过 TiDB 连接全球极限场景和创新场景,是 PingCAP 长期坚持的国际化战略。目前,在全球已有超过 3000 家企业选择 TiDB。无论在游戏、金融、物流、互联网还是智能制造等行业,基于规模化 OLTP 扩容、实时 HTAP 分析等应用场景,PingCAP 服务用户的脚步已经从中国延伸到全球,覆盖日本、亚太、北美和欧洲等各个区域。 本文为“全球极限场景与创新场景使用 TiDB 的最佳实践”专题第二篇,分享 TiDB 如何为 Bolt 1亿用户提供超强可扩展性与弹性,保障其服务的全球化运营。 Bolt 是一家总部位于爱沙尼亚,提供城市交通和运送服务的出行互联网公司,业务领域涵盖网约车、摩托车租赁、汽车共享和餐饮外卖等,是优步在欧洲的强劲竞争者。Bolt 在 45 个国家和地区的 500 多个城市拥有超过 1 亿客户,与全球 300 万多家供应商建立了合作伙伴关系,雇佣了 3000 多名员工。 ![BBBBOLTTT.png](https://dev-media.amazoncloud.cn/0a046afc87d74598bd94372d33a49752_BBBBOLTTT.png "BBBBOLTTT.png") ## 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](https://docs.pingcap.com/tidb/dev/ticdc-overview) 在 AWS 上设置多区域集群进行故障转移,并尝试 TiDB 的列式存储 [TiFlash](https://docs.pingcap.com/tidb/dev/tiflash-overview) 进行实时分析查询,获得更加实时的数据洞察。
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭