社交APP已成为了人们日常生活中不可或缺的一部分,伊对是一款深受年轻人喜爱的社交APP,拥有超过1.4亿用户,4万多名活跃红娘每月撮合上千场线上相亲活动,通过创新的音频、直播和线上红娘服务,解决了传统社交难题,打造了一个真实有趣的恋爱社区。
随着用户的不断增长和业务的发展,伊对数据库业务面临了一系列的技术挑战。首先,伊对的主要业务是直播、音视频和聊天,这些业务具有明显的日间波动特征,尤其是晚上8点左右,访问压力达到峰值。其次,伊对每月都会举行大量的线上相亲活动,需要应对高峰业务压力,这就要求DBA提前调整资源配置,并在活动结束后进行回调,带来了较大的运维负担。而且在业务高峰期,如果出现部分慢SQL导致资源被挤占,会影响正常业务的访问速度和体验。
针对这些问题,伊对选择了阿里云瑶池旗下的云原生数据库PolarDB Serverless作为解决方案。PolarDB Serverless支持在已购买的固定规格集群上开启Serverless功能,即稳态Serverless。客户在PolarDB 16核或32核等固定规格PolarDB集群上开启了Serverless;通过这种方式,超出日常固定规格的资源需求通过Serverless来满足,伊对不仅能够应对高峰期的业务压力,还能大大降低运维工作量。
具体来说,PolarDB Serverless具备以下优势:
- 弹性扩展
支持自动纵向扩容(增加本节点CPU和内存资源)和横向扩容(增加只读节点),单集群可支持0-1000核范围内的伸缩,有效应对业务负载突增,5秒完成探测,1秒完成弹升。
- 伸缩过程无感
资源弹升弹降对于业务运行没有任何影响。
- 资源管理
在业务负载下降时,集群资源阶梯性自动释放,实现最优的成本效益比。
- 自动化操作
资源调整工作从人工优化转变为全自动模式,降低了80%的运维工作量,变配时长从10分钟缩短至5秒。
图:伊对对外业务压力负载模型和PolarDB解决方案
除此之外,伊对在客户会员充值场景下,还需要PolarDB能够支持在主节点写入数据之后,在其他只读节点立刻可读,这样就可以避免会员重复充值或者充值之后发现没有到账的情况。PolarDB的Serverless默认支持高性能全局一致性,此功能特性实现数据在横向扩容的RO节点上实现跟主节点写入数据0延迟。要实现此能力在技术上面临很大挑战,PolarDB突破了延续几十年的传统数据库主从节点日志流式复制同步的传统架构,利用RDMA/eRDMA实现多个计算节点间数据/信息直接交互,实现了性能无衰减的只读节点全局强一致读。PolarDB结合PolarProxy,实现了跨计算节点事务一致性,任何事务内的写前读和写后读均可以分流到只读节点中。
上表是在全局一致性的场景下的测试对比,可以看出,仅有PolarDB在能保证只读节点提供全局一致性读,同时性能保持性能不下降。这也是为什么PolarDB Serverless是唯一一个支持根据负载自动扩展Serverless只读节点的原因。
除了对外部业务的支持,PolarDB Serverless还解决了伊对内部业务的需求。例如,财务、审核、客服等业务在白天的工作时间段访问高峰期,而且往往会出现尖峰的业务访问压力,比如审核系统中有时存在多人并发审核的情况,拉取相同数据,审核后做回传,高并发下数据库资源不足时速度非常慢(通常1分钟),严重影响体验,但是如果将数据库实例规格调整过大满足尖峰时刻需求时,又会导致在平时的资源严重浪费,成本过高;为了应对此需求,PolarDB在2C或4C固定规格的集群上开启了Serverless功能,当尖峰压力来临时,PolarDB可以在1s内完成资源弹升,将业务处理时长从1分钟降低为3s内,很好满足了应用体验,同时没有带来更高的成本。
图:伊对内部业务压力负载模型和PolarDB解决方案
通过PolarDB的Serverless能力,伊对APP成功地降低了运维工作量,提高了系统的灵活性和可用性,同时满足了其业务高峰期的需求,确保了用户良好的使用体验。PolarDB以其出色的性能和稳定性为伊对APP提供了强大的支持。