首批通过分布式安全可靠测评,为关键业务系统打造
OB Cloud 稳定支撑快手单集群超百 TB 海量数据
- 75%存储成本降低
- 3/4同步延迟时间减少
- 50%机器资源节省
快手:在大规模场景下落地 OceanBase 实践总结与思考
梁盼-快手数据库研发工程师
梁盼快手数据库研发工程师
胡玉龙快手技术专家
胡玉龙快手技术专家
筱虫快手运维负责人
2023-01-07
一、业务背景
快手APP是中国流行的短视频和直播应用之一,内容涵盖生活的方方面面,希望以技术赋能,用科技提升每个人独特的幸福感。在快手上,用户可以用照片和短视频记录自己的生活点滴,也可以通过直播与粉丝实时互动。自2011年成立至2021年上市以来,日活用户已达数亿,这一方面促使直播、电商等业务飞速增长,另一方面,使底层系统面临前所未有的压力。
二、业务挑战
- 存储出现瓶颈
- 以订单业务为例,订单业务总数据量超过 150T 时,出现单机集中式数据库(如 MySQL)的存储瓶颈以及性能不佳问题越来越明显。
- MySQL分片数膨胀
- 为缓解该类问题带来的业务影响,业务会选择分库分表方案来暂时应对存储和性能问题。不过随着业务不断增长,底层数据库的分片数会不断增加,当前快手线上 MySQL 分片数已达到 300+。
- 应用改造适配的难题
- 此时,不仅运维成本和复杂度有所增加,同时需要不断对应用进行改造和适配以解决不断分库分表带来的问题。快手意识到,当前的方案只能尽可能缓解业务遇到的问题,而无法从根本上解决。因此,快手亟需能在满足性能要求的同时降低使用、运维复杂度的数据库解决方案。
三、解决方案
- 高度兼容 MySQL ,极大降低开发和使用门槛
- 业务人员可以沿用 MySQL 的使用方式来使用 OceanBase,而不需要改变使用习惯,同时在数据迁移方面,因 OceanBase 兼容 MySQL 协议与语法,因此可以做到平滑迁移,可大幅降低业务迁移和改造成本。
- 同城三机房部署,实现 RPO =0,RTO< 30秒 的容灾能力
- 同时又可以在异地增加一个只读 Zone 提供本地的读服务,提升查询效率。同城容灾以及本地读等功能为业务提供稳定性和性能双重保障。
- 灵活的资源扩展能力
- 根据业务实际发展情况可以动态的进行计算和存储能力的线性扩展,支撑海量数据的存储和计算,同时很好地应对未来的业务增长要求。
- 极致数据压缩能力
- 相比传统的集中式数据库 MySQL,OceanBase 在存储层面极致的压缩能力,有效降低企业使用数据库的硬件成本。
四、应用场景
目前,快手的短视频App有8个OceanBase集群,机器规模已经超过200台物理机,数据量超800T,最大集群数据量超400T。最初使用OceanBase3.1版本、后期升级到了4.2版本,所有的集群都在提供线上服务,其中有核心系统交易核对系统和支付网关业务系统,也有替换MySQL主库来承担高并发写入的业务。在迁移到4.1版本后,集群本身对于业务的收益和稳定性都有显著提升。
交易核对场景
作为短视频平台,快手有对应的电商业务满足大家在刷视频时的购物需求。一般情况下电商的日均流量QPS表现平稳,大概8-9w。进行大型直播时,用户流量剧烈增长,一般情况下QPS能快速增长至平时的十倍甚至百倍,达到百万级别,即使数据量压缩也会达到百余TB。
OceanBase分布式架构天然具备水平扩展能力,因此在数据量不断增长时只需要水平扩展集群的存储和计算能力,解决大表查询和存储问题;同时本身拥有原生分布式能力,对分布式事务处理更擅长。使用OceanBase后,上游业务直接写入MySQL集群中,同时每一条数据写入上游MySQL分片时会通过Binglog实时写入OceanBase中。数据核对查询时,在查询上游MySQL集群时会同时触发向下OceanBase进行相同的查询,并对上下游的查询结果进行比对,从而保证整个账务系统中订单状态的正确性。
支付业务场景
支付业务是电商的实时业务,一方面是面向商家、客服查直播收益,另一方面是支付网关相关的聚合查询。在引入OceanBase之后,OceanBase在线扩展性轻松解决了大数据量的存储问题,同时HTAP能力在保证数据写入的同时提供实时的查询分析能。在该业务场景中,OceanBase对复杂SQL分析能力不弱于Elasticsearch。此外,在线加索引能力使得业务可以随时进行DDL变更。在使用OceanBase替换MySQL+Elasticsearch方案后,不仅省掉了Elasticsearch服务及硬件,MySQL硬件成本也大幅降低,相比之前方案整体节省50%的机器资源,性能也满足业务的查询要求。
五、客户收益
- 运维更加高效与便捷
- 单集群替换 300+ 套 MySQL 环境,使用一套OCP管理OceanBase的8套集群,OBServer节点数超过190个,集群扩缩容、监控、告警都可以通过OCP完成,运维管理成本大大降低,同时管理更加方便;
- 成本大幅降低
- 支撑上百 TB 数据存储场景且性能和稳定性有保证,同时相比较之前的方案,OceanBase 方案的存储成本降低 75%,降本效果明显。相比传统的集中式数据库MySQL,OceanBase 在存储层面极致的压缩能力,有效降低企业使用数据库的硬件成本,帮助快手节省了50台机器;
- 数据同步性能提升
- 数据从上游写入到下游 OceanBase 响应延迟更小,数据同步速度更快,同步延迟时间减少 3/4。