*本文根据海尔消金高级数据库架构师李兆在 2024 OceanBase 年度发布会上的演讲整理而成。
海尔消费金融有限公司(以下简称:海尔消金)成立于 2014 年,是由海尔集团公司发起设立的消费金融公司,主要产品包括海尔消费金融 APP、够花 APP,为近 6000w 用户提供家电、教育、医美等多元场景下的金融需求。
海尔消金创立伊始,采用某商业数据库。随着业务发展,单一数据库无法支撑复杂业务,又引入了 MySQL、TiDB、MongoDB、ES 等多种数据库。然而,新的问题也随之而来。日增量上百 GB 的数据、不堪重负的服务器、最高可达上百万的数据库软硬件成本、技术堆栈带来的运维复杂度……千头万绪之时,海尔消金选择了 OceanBase 云数据库服务 OB Cloud 来统一纳管,实现技术栈的从繁到简。目前,搭载 OB Cloud,海尔消金业务系统已平稳运行 300 余天 0 故障,存储容量节省 85%。
随着业务规模不断增长,海尔消金的数据库系统里累积了上千套 MySQL 实例,运维管理特别复杂。海尔消金高级数据库架构师李兆在分享中提到,MySQL 的高可用性自建方案往往需要依赖开源工具,稳定性较差。在一台服务器上有多个实例时,如果一个实例被终止,会导致其他实例受到影响;而某些工具无法支持多实例的管理,造成资源严重浪费,管理 MySQL 数据库的工作变得相对困难。
此外,传统数据库水平扩展能力较弱,尤其 MySQL 缺乏有效的扩展手段,通常只能通过分库分表扩展资源,但分库分表必须对代码进行改造重构,这一过程周期长且繁琐。目前,海尔消金的核算平台已经由最初的一套数据库分拆到了四套数据库,新增用户逐渐迁移到新的数据库上,而老用户仍然留在旧数据库上运行。
“实际上第一个数据库里的多数数据已经不再需要参与跑批,但一些五六年的数据却被迫每次都要参与运行。该行为限制了数据库扩展能力,也给运维管理工作带来了很多麻烦。”李兆介绍说。
此外,MySQL 在处理大表 DDL 变更时存在主从延迟风险。今年,海尔消金在青岛和黄岛建设了双机房。“一旦进行大规模的 DDL 变更,从库可能会出现 1-2 小时的延迟,导致两地数据对不上,我们 DBA 同学常常需要半夜爬起来处理这些问题。”李兆坦言:“MySQL 在处理复杂 SQL 时的性能相对较弱,进一步增加了运维复杂度。”
成本上, MySQL 的使用成本同样不容小觑,分库分表需要购买大量的服务器,动辄数千甚至数万的数据库实例,对任何公司来说都是一笔不小的开支。如此多的硬件资源,CPU 的使用率一般情况下仅为 3%-10%,资源的浪费问题十分严重,机房的维护成本也随之增加。
目前,海尔消金一边解决 MySQL 的问题,一边也在考虑引入一款分布式数据库,保障系统的安全、稳定,以支持业务的快速增长和稳定运营。
2023 年,海尔消金开始分布式数据库选型,就将 OceanBase 作为四家技术提供商之一重点考察。
李兆称,在选型时,业务侧提出两项硬性要求。“一是必须保持现有代码不变,不能改动任何一行代码,二是性能不能低于之前的 MySQL 数据库;同时也希望可以支持横向扩容以弥补 MySQL 的不足。”
在 POC 阶段,海尔消金共选取了四家数据库厂商进行测试。李兆对 OceanBase 的测试过程印象很深刻。“当时其他数据库供应商派来了十几名技术人员, OceanBase 只来了一位技术人员,但在第一天就完成了数据库的安装。最终的测试结果也远超 MySQL,在几个数据库提供商中性能表现最优。”
就此,海尔消金成功与 OB Cloud 结缘,启动分布式转型升级。
海尔消金从一开始就直接将 OB Cloud 部署在其核心系统,通过核心容量分片,选择了 12 套用于其核心业务的服务器。由于白天业务运营不能停机,晚上的借款需求也很高,海尔消金通过大量测试,原厂保障,经历 6 轮的切换演练后,选择了一个借款需求相对比较少的时段,在 10 分钟内完成了 3TB 数据量、1w 左右 QPS 的系统割接。
目前,海尔消金由于业务规模不大,采用了主备集群架构的双机房部署,没有考虑其它的冗余方案。即采用一主集群+一备集群的架构,提供可扩展性的同时,具备同城/异地容灾能力。同时,采用最大性能方式进行主备同步,以充分保证主库性能,使业务连续性更有保障,有效降低故障影响。未来,随着业务扩展,将考虑双中心、两地三中心等更加高可用的架构选型。
目前,海尔消金已完成信贷核心、会计引擎、主动核算、被动核算、清算平台、消息平台等核心系统基于 OB Cloud 的分布式升级,业务收益显著。
迁移至 OB Cloud 后,海尔消金的资源成本显著降低,存储空间节省了 85%,一些场景实现了 3 倍的压缩比。此外,系统响应耗时进一步降低。李兆表示:“OB Cloud 在分页查询方面的表现尤为出色,4~5s 的查询提速至 1s 以内,以前一些复杂的 SQL 查询容易执行超时,升级后在 OB Cloud 中可以快速完成,极大降低了业务异常风险。”
在扩展性层面,基于大集群多租户,OB Cloud 实现秒级的数据库实例资源弹性扩缩容,在整体集群资源使用不变的前提下,稳定承载多个业务的高峰压力。同时,通过 OB Cloud 统一技术栈,系统易用性显著增强。上线近 10 个月,系统稳定运行 0 故障。
除此之外,ODC 还给海尔消金数据库团队带来了意外之喜。
李兆介绍说:“我们今年原计划做自动化运维,系统升级到 OB Cloud 之后,OB Cloud 自带 OCP(OceanBase Cloud Platform),数据库运维更加高效。另外还有 ODC(OceanBase Developer Center), 它虽然没有被太多人提及,但对于规模较小的企业来说,ODC 提供了开源解决方案,是一个值得尝试的工具,在提高开发能力和管控协同能力方面,体验非常不错。”
海尔消金的数据库团队使用了 ODC 提供的开源解决方案,来处理变更协作审批流程,设立了由项目组、管理员和 DBA 组成的三级审批机制,变更请求需要经过 DBA 审核。同时,通过 ODC 平台的 SQL Check 功能,解决了规范变更问题,尤其是对于过时的数据表,按照作业维度,提供了人性化的归档功能,解决了多数据源异构归档问题。
目前,海尔消金已经加入 ODC 的 SIG(Special Interest Group)会员,积极推动 ODC 的多数据库变更支持,涵盖了 Oracle、MySQL 和 OB Cloud 等数据库,OceanBase 团队也会根据会员的需求和反馈进行功能改进。
“未来,我们还将把海尔消金新增系统全部搭载 OB Cloud,存量数据库逐步向 OB Cloud 迁移,不断简化技术栈,探索各个层面的降本增效。”李兆说。