性能提升100%、存储节约50%!猕猴桃游戏搭载OceanBase开启云端手游新篇章

近日,武汉灵动在线科技有限公司(以下简称“灵动在线”)与 OceanBase 达成合作,旗下品牌猕猴桃游戏的“游戏用户中心(微信小程序)”和“BI 分析报表业务系统“两大关键业务系统全面接入 OB Cloud 云数据库,实现存储容量节约 50%,SQL 复杂查询性能提升 100%,数据承载能力提升 10 倍以上,亿级数据平均响应耗时缩短为原来的 1/5。

2014 年,灵动在线在武汉创立,猕猴桃游戏为旗下品牌。一直以来,公司以“平台化”、“全品类”、“全球化”为战略方向,致力于在全球范围内游戏的研发与发行。短短 9 年,公司已自主研发多款市场热门手机游戏及微信小游戏,目前已成长为优秀的独代发行公司,游戏用户量超千万。

图片

随着业务规模和游戏用户量的快速增长,海量数据给猕猴桃游戏的数据库带来三大挑战:

第一,数据量大导致性能瓶颈。游戏业务,特别是微信小游戏业务的快速发展,猕猴桃游戏的平台用户中心数据量增长迅速,单表数据量就达到过亿水平,CPU 使用率经常性达到 100%,SQL 性能频繁出现瓶颈,定期任务的统计 SQL 执行已经达到分钟级。

其次,分库分表代价攀升。为解决大表问题,猕猴桃游戏不得已暂时选择了分库分表路线,但却无法给业务带来价值。与此同时,架构复杂度提升,需要开发人员和 DBA 人员逐步投入更多时间和资源,导致数据库运维成本进一步攀升。

第三,超大表 DDL 痛点。原有数据库大表 DDL 变更风险高,并可能阻塞 DML,主备延迟导致只读实例数据不准。

一直以来,游戏行业天然存在高并发问题,数据库需要具备高弹性、高可用、快速实时查询、支持高并发吞吐等能力。猕猴桃游戏也不例外,基于以上三大挑战开始对数据库进行多方调研、测试、分析后,最终选择 OB Cloud 云数据库为其 “游戏用户中心”和“BI 分析报表业务系统“两大关键业务系统提供数据库服务。

升级至 OB Cloud 云数据库的过程中,猕猴桃游戏借助 OceanBase 的高 MySQL 兼容性,实现两大关键业务系统从 RDS 中的业务表,在应用基本零改动的情况下平滑迁移至 OceanBase 的分区表。

与此同时,由于每一款游戏的停机升级窗口期很短,对数据库迁移速度的要求非常高。猕猴桃游戏将“游戏用户中心”的数据提前实时同步至 OceanBase,然后在窗口期通过 OMS(OceanBase Migration Service,OceanBase 数据迁移工具)反向切换,在半小时内即完成 OB Cloud 云数据库的迁移。

猕猴桃游戏对数据库高可用要求较高,因为平台作为用户登录充值统一入口,如果出现服务不可用会直接带来巨大经济损失,所以迫切需要引入分布式技术,同时期望对现有应用无影响。借助 OceanBase 原生分布式数据库天然具备的三副本强一致能力,故障场景下也能实现数据零丢失,并且在 8 秒内故障可自动恢复。

完成数据库升级后,猕猴桃游戏无需再分库分表,并解决了原有数据库的性能瓶颈问题,可以平稳支撑此后游戏用户量的规模化快速增长。同时,通过 HTAP 实时分析能力,一套数据同时支持事务处理和实时分析的工作负载,猕猴桃游戏的复杂 SQL 查询性能提升 100%,亿级数据平均响应耗时缩短为原来的 1/5。以“BI 分析报表业务系统”为例,汇聚所有数据进行经营分析、买量分析等,升级至 OB Cloud 云数据库后无需复杂的 “ETL” 链路,减少数据冗余,可以做到实时分析,进而实现数据驱动游戏业务增长。

图片

因为 OceanBase 是原生的分布式数据库,支持分布式事务,所以可以做到无感知的横向扩展,任意 OceanBase 集群增加机器,业务流量也会自动迁移到新增的机器中。借助多级弹性扩缩容能力,猕猴桃游戏的数据承载能力提升了 10 倍以上,这也为猕猴桃游戏后续业务的规模化增长提供了长足保障。

猕猴桃游戏熟练使用 OceanBase 大集群模式,以及基于内核的在线 DDL、智能诊断功能,在 OCP(OceanBase Control Platform,OceanBase 运维管理工具)加持下,DBA 的运维效率得到大幅提升。与此同时,凭借 OceanBase 先进的数据压缩技术,平衡了“性能”和“压缩比”难题,在保障系统性能不降反增的前提下,猕猴桃游戏实现存储容量节约 50%。

面向多基础设施的一体化数据库 OB Cloud 构建在阿里云、腾讯云、AWS 等全球主流公有云基础设施上,基于完全自主研发的原生分布式数据库,并在云上集成了评估、迁移、监控、诊断、备份恢复、运维优化等工具。凭借多级弹性扩缩容、规模化降本、领先的业务连续性、支持多基础设施架构、HTAP 实时分析等硬核能力,OB Cloud 云数据库已深度助力携程、海底捞、理想汽车、泡泡玛特、二维火、纵腾集团、掌玩游戏、GCash、Palmpay 等多领域企业,在数据库性能显著提升的基础之上,实现多项成本降低与效率提升。

此次猕猴桃游戏与 OceanBase 牵手,实现 “游戏用户中心”、 “BI 分析报表业务系统“两大关键业务系统的性能显著提升和存储容量节约,展现了 OceanBase 致力于用自研技术助力企业提效降本的理念。未来,OceanBase 将继续与猕猴桃游戏一起成长,让猕猴桃游戏的每一笔「登录」都算数,助力猕猴桃游戏业务稳步增长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows下redis 设置开机自启动

1,在redis的目录下执行(执行后就作为windows服务了) redis-server --service-install redis.windows.conf 2,安装好后需要手动启动redis redis-server --service-start 3,停止服务 redis-server --service-stop

用标记接口定义类型

标记接口是不含有任何方法的接口,它的目的是通过将特定接口应用于类来为该类添加类型信息。以下是一个示例: public interface Drawable {// 标记接口,不包含任何方法 }public class Circle implements Drawable {private int radius;public…

【C++11特性篇】利用 { } 初始化(1)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.回顾C98标准中{}的使用二.一切皆可用…

大创项目推荐 垃圾邮件(短信)分类算法实现 机器学习 深度学习

文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 垃圾邮件(短信)分类算…

TrustZone之中断及中断处理

一、中断 接下来,我们将查看系统中的中断,如下图所示: 通用中断控制器(GIC)支持TrustZone。每个中断源,在GIC规范中称为INTID,分配到以下三个组之一: • Group0:安全中断,以FIQ方式发出信号 • 安全Group1:安全中断,以IRQ或FIQ方式发出信号 • 非安全Gr…

万兆网络之屏蔽线序接法(上)

可以经常听到用RJ45指代网线,用RJ11指代电话线的,RJ(Registered Jack)即已注册插口,可以简单理解为一种约定就行(参见参考链接) 前一篇已经讲到,网线线对互相缠绕是为了电流方向相反…

netty-daxin-2(netty常用事件讲解)

文章目录 netty常用事件讲解ChannelHandler接口ChannelHandler适配器类ChannelInboundHandler 子接口Channel 的状态调用时机ChannelHandler 生命周期示例NettServer&CustomizeInboundHandlerNettyClient测试分析 ChannelInboundHandlerAdapter适配器类SimpleChannelInboun…

LeetCode-反转链表问题

1.反转链表 题目描述: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 思路: 反转链表也就是链表倒置,我一直以来的办法就是先建立一个头节点,之后再遍历链表来进行头插。 代码&#xff1…

比尔盖茨最新文章——AI 将彻底改变计算机的使用形式

最近发现比尔盖茨还在写文章,确实了不起,68 岁的老人家还在坚持输出,除了写文章,比尔盖茨还致力于教育、医疗和卫生等慈善工作,奋斗在一线,看来美国人也延迟退休啊 😅 原文《AI 将彻底改变计算…

Java数据结构篇——单链表的基本操作

1. 前言 在上一篇《Java数据结构篇——实现顺序表的增删查改》,我们已经熟悉了 ArrayList 的使用并且进行了简单的模拟实现。ArrayList底层使用数组来存储元素,由于其底层是一段连续的空间,当ArrayList 任意位置插入或者删除元素时&#xff…

《使用ThinkPHP6开发项目》 - 登录接口一

《使用ThinkPHP6开发项目》 - 安装ThinkPHP框架-CSDN博客 《使用ThinkPHP6开发项目》 - 设置项目环境变量-CSDN博客 《使用ThinkPHP6开发项目》 - 项目使用多应用开发-CSDN博客 《使用ThinkPHP6开发项目》 - 创建应用-CSDN博客 《使用ThinkPHP6开发项目》 - 创建控制器-CSD…

SystemVerilog基础:并行块fork-join、join_any、join_none(二)

相关阅读 SystemVerilog基础https://blog.csdn.net/weixin_45791458/category_12517449.html 在第一节中,我们讨论了并行块中的fork-join块和fork-join_any块,了解了它们的差异,本文将继续讨论fork-join_none块的使用。 fork-join_none并行块…

12.12_黑马数据结构与算法笔记Java

目录 079 优先级队列 无序数组实现 080 优先级队列 有序数组实现 081 优先级队列 堆实现 1 082 优先级队列 堆实现 2 083 优先级队列 堆实现 3 084 优先级队列 e01 合并多个有序链表1 084 优先级队列 e01 合并多个有序链表2 085 阻塞队列 问题提出 086 阻塞队列 单锁实…

5个创建在线帮助文档的好方法!

在线帮助文档是企业为用户提供支持服务的重要工具,它能够帮助用户更好地了解和使用产品,提高用户体验。然而,创建一份优秀的在线帮助文档需要掌握一定的技巧和方法。接下来就介绍一下创建在线帮助文档的5个好方法,帮助企业更好地为…

【JavaWeb学习笔记】10 - 手写Tomcat底层,Maven的初步使用

一、Maven 1.Maven示意图 类似Java访问数据库 2.创建Maven案例演示 配置阿里镜像 找到setting目录 但一开始配置不存在该文件 需要去Maven主目录下的conf拿到settings拷贝到上述目录 拷贝到admin/.m2后打开该settings 在<mirrors>内输入镜像地址 <mirror> …

Docker--Docker镜像仓库

一、搭建私有镜像仓库 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址&#xff1a;https://hub.docker.com/_/registry &#xff08;一&#xff09;简化版镜像仓库 Docker官方的Docker Registry是一个基础版本的Docker镜像仓库&#xff0c;具备仓库…

线下实体门店引流,百万私域电商高手都在用的实战营销引流技巧!

线下实体门店引流&#xff0c;百万私域电商高手都在用的实战营销引流技巧&#xff01; 无论是初创公司还是已经在步入正轨的实体门店&#xff0c;有个现实的实例告诉你&#xff1a;互联网上90%的引流技巧告诉你的方法&#xff0c;其实都是不挣钱的&#xff0c;辛辛苦苦折腾一整…

大数据技术之Shell(超级详细)

大数据技术之Shell&#xff08;超级详细&#xff09; 第1章 Shell概述 Shell 是一种脚本语言&#xff0c;用于在操作系统的命令行界面&#xff08;CLI&#xff09;下执行命令和脚本。在大数据领域&#xff0c;Shell 脚本常用于编写数据处理和分析任务的自动化脚本&#xff0c…

Redis设计与实现之对象处理机制

目录 一、前言 二、对象处理机制 1、redisObject 数据结构&#xff0c;以及 Redis 的数据类型 2、 命令的类型检查和多态 3、对象共享 4、引用计数以及对象的销毁 三、对象的处理 1、Redis是如何处理字符串对象的&#xff1f; 2、Redis是如何处理列表对象的&#xff1f…

十九)Stable Diffusion使用教程:ai室内设计案例

今天我们聊聊如何通过SD进行室内设计装修。 方式一:controlnet的seg模型 基础起手式: 选择常用算法,抽卡: 抽到喜欢的图片之后,拖到controlnet里: 选择seg的ade20k预处理器,点击爆炸按钮,得到seg语义分割图,下载下来: 根据语义分割表里的颜色值,到PS里进行修改: 语…