首批通过分布式安全可靠测评,为关键业务系统打造
OB Cloud 助力泡泡玛特打造分布式抽盒机系统
- 90%扩缩容时间缩短
- 99.999%系统连续性
- 百倍流量弹性应对秒杀期间
应对业务洪峰,泡泡玛特如何实现无感数据库弹性伸缩
应对业务洪峰,泡泡玛特如何实现无感数据库弹性伸缩
2023-09-08
为了更灵活、低成本地实现数据库扩容和缩容,既能满足业务低峰时期的较小需求,减少浪费,也能在业务高峰时期快速扩容,泡泡玛特选择云数据库 OB Cloud,打造了新一代分布式抽盒机系统。

一、业务背景
作为中国潮玩行业的领先者,泡泡玛特凭借MOLLY、DIMOO、SKULLPANDA等爆款IP,以及线上线下全渠道营销收获了千万年轻人的喜爱,会员人数达到2600多万。2022年,泡泡玛特实现46.2亿元营收,其中线上渠道营收占比41.8%,而抽盒机小程序是线上营收的重要来源。
为了让全国的潮玩爱好者能够随时随地在线抽盒,2018年9月2日,泡泡玛特抽盒机小程序诞生。这款小程序模拟线下消费者的抽盒场景,将现实的抽盒乐趣搬到线上,同时增加了多种多样的玩法,收获了大量粉丝。
二、业务挑战
- 难以从容应对流量洪峰
- 泡泡玛特发售新产品的频率非常高,新产品发售会带来业务流量的突增。一方面是容量预估非常难做,为保证每周新品发售的全过程安全,往往要按照最大可能的流量来扩容,通常会带来比较大的浪费;一方面是运维人员压力过大,为最大程度地降低对业务的影响,通常都需要挑在凌晨的时间进行升降配。
- 集群规模难以灵活调度
- 面对业务流量的急速变化,泡泡玛特业务数据库的规模也需要进行灵活的调整,在业务低峰时期以较小规格稳定运行,减少浪费;在业务高峰时间快速扩容,保障新品发售的稳定。MySQL等传统单机数据库扩缩容能力较差,只能通过更换服务器规格来实现,对业务影响较大。
- 数据库实例数量多管理复杂度高
- 泡泡玛特多个不同的业务,需要部署大量的数据库实例,造成实例较多,资源分散且利用率参差不齐,对于数据库成本控制和有效运维带来挑战。
三、解决方案
- 多级弹性伸缩解决方案
- OceanBase的弹性能力分为三个层次:租户级、机器规格级、机器数量级。泡泡玛特运维团队通过这三个层次的灵活搭配策略,可以轻松且低成本的解决应对大中小型流量洪峰的难题。
- 第一级弹性伸缩:租户规格的调整
- OceanBase租户规格的调整可以做到秒级生效,并且对应用完全无影响。 因为租户是OceanBase内部划分出的一个资源组,对租户规格的调整不涉及物理层面的资源调整,完全由OceanBase内核完成。
- 第二级弹性伸缩:机器规格的调整(即垂直扩缩容)
- 第一级弹性伸缩无法满足业务需要时,可以再扩大机器规格。MySQL扩容需要有主备切换的操作,导致应用闪断,风险较大。而OceanBase是通过Paxos协议进行节点间的数据同步,Paxos协议核心点是自选举,一份数据的三个副本投票表决出谁来当选leader,以及该日志是否提交,所以升配的整个过程对应用基本透明无感知。
- 第三级弹性伸缩:机器数量的调整(即水平扩缩容)
- OceanBase是原生的分布式数据库,支持分布式事务,可以做到无感知的横向扩展,这是MySQL主备架构做不到的。OceanBase集群增加机器,业务流量会自动迁移到新增的机器中。并且在这个过程中,应用无感知,可以像使用一个单机MySQL那样继续使用这个有多台机器的集群。
- 多租户大集群解决方案
- OceanBase 集群原生实现了多租户下的资源隔离和虚拟化,一个集群轻松承载原有多个数据库实例,每个租户(对应原来的实例)数据和资源隔离。针对泡泡玛特数据库实例多管理复杂的问题,考虑到业务线运维的区分,将原有几十套数据库实例整合为3套OceanBase集群,原有的一个实例,对应OceanBase集群中的一个租户,兼顾综合成本和资源分配。
四、客户收益
- 租户级弹性,扩缩容时间降低 90%
- 通过租户规格的调整,泡泡玛特大部分的小业务流量波峰,通过核心业务租户规格的扩大,即可秒级生效,扩缩容时间降低 90%,并且对应用完全无感,可以随时随地无额外花费完成。
- 集群级弹性,轻松应对秒杀期间百倍流量
- 通过机器规格和机器数量的调整,即垂直水平扩缩容,泡泡玛特对大业务流量波峰,实现单机原地升配、多机弹性扩展,多机流量均衡多个维度的扩容操作,并且对上层应用透明,可轻松应对秒杀“抽盒”期间百倍流量,新产品发售期间系统连续性 99.999%。
- 运维效率显著提升
- 通过将几十套数据库实例整合为3套OceanBase集群,原有一个实例对应一个租户的形式管理,泡泡玛特运维团队的效率显著提升。如今,在数据库操作中,运维人员可以在任意时间(比如白天正常业务进行时),调整租户的CPU核数和内存大小,整个租户的极限TPS就可以得到平滑提升。