首批通过分布式安全可靠测评,为关键业务系统打造
分布式架构升级:携程实现海量数据高可用保障
- 2倍读性能提升
- 3倍写性能提升
- 2/3存储资源节省
携程眼中的 OceanBase
陈尧-携程资深DBA
陈尧携程资深DBA
余聪携程数据库专家
姜贤富携程DBA部门数据库研发工程师
台枫携程高级数据库工程师
高帅锋携程高级开发经理
余建锋携程资深DBA
2022-09-06
gaosf携程高级开发经理
许金柱携程 DBA
提挈携程资深数据库工程师
姜贤富,施纬携程数据库研发工程师
一、业务背景
二、业务挑战
- 业务流量激增
- 携程“IM+”业务采用 MySQL 作为消息写库,因业务流量激增,无法满足业务部门需求。数据存储达到 MySQL 存储极限。以携程 IM 业务为例,群组消息表保存两个月的数据占用存储空间 800G 左右,基本触达当前配置下 MySQL 单表上限;
- 存储及处理能力瓶颈
- MySQL 数据库无法通过扩容机器数量获得存储、处理能力的提升,线上业务表数据量巨大,无法按照业务期望进行灵活的字段调整;
- 故障无法及时自动恢复
- 采用 MySQL 主备方案,基于 binlog 复制的多节点存在数据一致性问题,在机房故障条件下无法保证数据强一致,业务不能快速恢复。
三、解决方案
- 支持全量、增向、反向迁移
- 提供好用稳定的 OMS,通过全量迁移、增量迁移、反向迁移,保障数据迁过程中的强一致,并提供数据同步到 kafka 等消息队列中的能力,为后续大数据分析、机器学习提供数据;
- Paxos协议保证数据强一致
- OceanBase 使用优化的 Paxos 协议结合物理日志复制强保证多数派的数据一致性,三副本情况下强保证至少两个副本数据一致性,满足携程业务的数据一致性的要求;
- 资源池化,数据库实例混部
- 携程通过配置一个较大的资源池给到 OceanBase,使用 OceanBase 提供的多租户资源隔离能力,将原来多个业务使用的 MySQL 实例迁移到 OceanBase 的租户中,从而实现一个集群多个数据库实例的混合部署模式;
- HTAP 能力为携程打开新可能
- OceanBase 的 HTAP 能力为携程的业务打开了新的可能性,在同一套数据库集群中,可以一边进行在线业务的 TP 操作,一边提供业务 Ad Hoc 的查询能力,因为 AP 查询就在数据所在的原地,数据都是新鲜的,对业务的服务能力要比经过 ETL 的数据时效性更强,同时因为没有增加数据副本使得存储成本也得到了有效控制,相当于买一送一的大份量满足。在 TP/AP 业务混合使用的场景下,OceanBase 也提供不同业务的有效资源隔离和限制能力,不会因为 AP 的引入导致与 TP 业务发生资源争抢,最终导致业务服务质量受损。
四、客户收益
节点和机房故障的快速恢复能力得到显著提升,实现 RPO = 0,RTO<30s;
携程在性能和成本方面取得了不错的收益,在性能方面,OceanBase 方案读性能平均提升 2 倍,写性能平均提升 3 倍;在成本方面,OceanBase 方案节省 2/3 存储资源,很大程度上降低了硬件成本。基于 OceanBase 的高级压缩技术,在保证性能的同时,数据存储空间节约近 85%。同等硬件投入的前提下,携程可存储更多数据;
基于大集群多租户,实现秒级的数据库实例资源扩缩容,在整体集群资源使用不变的前提下,稳定承载多个业务的高峰压力。