需永远在线的游戏公司,如何在线替换开源存储?

news2024/10/5 5:16:05

2fc582f52548cff21dcecf7585eb7ad1.jpeg

小帅是一个酷爱游戏的玩家,他玩一款游戏已经很久了,始终乐在其中。

这款游戏风靡全球,在中国手游出海榜单中,长期位居榜首。

他不知道的是,就在他玩游戏的过程中,这款游戏的出品公司,其实已经实现了旧有存储系统到全新存储系统的平滑迁移和无缝扩容。

在整个切换的过程中,作为出海成绩优秀、像小帅这样的玩家遍布全球多个国家的游戏,其游戏从未中断、流畅性也从未受到影响。

这种给处于高速发展且玩家众多的游戏公司,在线替换和扩容存储系统的行为,无异于给高速行进的动车更换全部发动机

其难度可想而知。

那么,该游戏公司的存储系统平滑迁移、过渡和无缝扩容,是怎么做到的呢?


游戏行业的存储架构部署

有何不同?


互联网和游戏行业的业务和 IT 模式与传统行业有着比较大的差异,无法进行充分的规划后再建设,而是需要快速开发上线验证,同时又可能面临着短期内指数级增长的可能,对基础架构和业务开发都带来了比较大的挑战。

前面提及的这家游戏公司就面临着这样的挑战。他们以创新的游戏玩法、精美的画面和深入的故事受到全球玩家的喜爱。

该公司致力于为玩家提供丰富多样的娱乐体验,并不断推出新的游戏内容和活动,与玩家保持良好的互动。他们在全球范围内拥有庞大的粉丝群体,是中国游戏产业的重要力量之一。

在业务建设的初期,由于只有图片和文档需要存储,该公司自然想到了使用对象存储来承接非结构化数据的存储。又由于没有足够的时间进行完整的商业化存储产品评估,并且前期数据规模不大,他们选择了开源对象存储。

但随着数据规模的快速增长和接入业务的增加,该公司在使用开源对象存储方案时,出现了一系列问题,如:

  • 各个部门自行搭建和管理开源对象存储,导致管理复杂,权限难以统一管理;

  • 各个部门独立搭建资源池,导致存储资源无法统一规划,也不利于进行跨部门的资源调度;

  • 开源存储方案的性能不足,无法满足业务发展的要求;

  • 开源方案缺乏企业级服务支持,导致故障和需求无人支撑;

在互联网和游戏行业中,这其实是非常典型的场景,而星辰天合针对这样的场景设计了完善的方案,也很快获得了该公司的信任。

该游戏公司选择与星辰天合合作,以星辰天合的备受市场认可的对象存储 XEOS V6 来替换原有的开源存储系统


如何实现新旧存储系统的

平滑迁移?


那么问题来了,怎么才能够实现平滑迁移?

在存储方案中,搭建和使用一套全新的存储并不是最难的,最大的挑战是保证新旧存储的平滑迁移和无缝切换。

这也是该游戏公司最关注的点。

在该公司中,由于多套开源存储已经对接了众多业务平台,要求业务平台进行统一的停机和切换是无法接受的,全球众多小帅那样的玩家也不可能接受。

好在,对于多年处于市场领先地位的星辰天合对象存储 XEOS 而言,应对这样的需求已经是驾轻就熟。

对象存储 XEOS V6,可以提供重建迁移的方案,帮助该游戏公司实现平滑的数据迁移,其流程如下,只需要四步:

79fdfbda4e484469811ac0750065cfe6.jpeg

该网游公司的存储迁移方案步骤演示


  • 配置透明访问:确保对旧存储中数据的透明访问,保持业务的连续性;

  • 切换业务到XEOS V6:将业务逐步切换到XEOS V6上,确保业务平稳过渡;

  • 扫描重建元数据:对旧存储中的元数据进行扫描和重建,确保元数据的准确性和完整性;

  • 迁移数据:通过数据迁移机制,将数据从旧存储迁移到XEOS V6上,实现无缝过渡。

其实,客户另外还有一个头痛许久的问题,就是他们此前部署的开源存储性能已经满足不了业务要求,经常出现响应慢和负载高的情况,比如在业务高峰期查看用户高清头像时经常需要等待十几秒,这对于玩家来说,是非常不爽的游戏体验。

考虑迁移动作可能给开源存储带来新的元数据和数据访问的负载,该公司十分关注如何避免这部分新负载进一步影响开源存储的性能。

在方案交流过程中,星辰天合推荐了 XEOS V6 提供的迁移 QoS 控制的功能,让客户进一步感受到 XEOS 针对该场景的周全考虑。通过 QoS 控制,XEOS 可以合理调节迁移过程中的负载,确保业务访问和数据迁移的平衡,提高系统的性能和稳定性。


怎么把所有的业务

都迁移到新存储平台?


在完成数据和业务迁移方案的规划后,该游戏公司又针对现网情况提出了新的要求。因为原有的多套开源存储接入了众多不同业务和部门的访问,要求所有业务在同一时间点切换到新存储是不合理的,需要星辰天合提供一个平滑的业务过渡方案。

为解决这个问题,星辰天合在该客户的实践中采取了以下方法,利用了 XEOS 已有的相关能力:

49debee8dd199dac0bb9f8cd37b628c0.jpeg

实现从开源存储到 XEOS 的平滑过渡


  • 业务 1 首先完成开源存储迁移和替代,数据读写都在 XEOS V6 上进行;

  • 业务 2 尚未完成切换,同时又需要访问业务 1 产生的新数据;

  • XEOS V6 利用桶复制功能,将业务 1 写入和删除的 IO 操作复制到开源存储中,业务 2 仍然可以通过访问开源存储来获取已经切换的业务产生的新数据,实现了业务之间的无缝连接和互通。

这种方案允许该游戏公司的部分业务先切换到 XEOS V6 上,确保其数据的正常读写,同时保留了与其他业务的数据互通能力

在看到 XEOS V6 提供的完善的企业级功能和极高的性能后,各个业务和部门也快速推进改造和切换,随着其他业务逐步切换到 XEOS V6 上,整个系统将实现完全的平稳过渡和无缝切换。


如何才能够实现无缝扩容

服务更多游戏玩家?


该游戏公司的多款游戏备受海外玩家青睐,接入到其存储系统的业务也逐渐增多,数据也在加速增长,存储系统必须能够轻松扩容以提供更完善的服务。

但是,开源对象存储的扩容,一直是老大难问题。

这正是促使该游戏公司跟星辰天合沟通,试图进行专业存储方案建设的重要因素之一。

在完成对开源对象存储的替换后,利用星辰天合提供的平滑扩容和非结构化统一存储的方案,该客户轻松实现了无缝的扩容并构建了统一的数据湖。

通过星辰天合的平滑扩容方案,该游戏客户既能够按需扩展存储容量,也无需中断现有业务的运行。这为业务提供了充分的灵活性和可持续增长的存储能力,满足了不断增长的业务需求,让来自全球的小帅们能够轻松享受该游戏公司构筑的虚拟世界

此外,星辰天合的非结构化统一存储方案为该公司提供了统一的存储资源池。在这一资源池上,该游戏公司不仅完成了 XEOS V6 对开源对象存储的替换,还搭建了 XGFS 文件存储服务。

通过统一的数据湖架构,该游戏公司不同的数据源和业务系统可以集中存储和管理数据,实现了数据的统一视图和共享,方便了数据的分析、挖掘和利用。


选择XEOS

轻松应对挑战


在很多企业的业务创新初期,由于缺乏时间进行完整的商业化存储产品评估,并且业务规模不大,企业选择采用开源搭建的方式可以快速满足业务需求。

而开源方案提供了灵活性和快速部署的优势,适合初期业务的快速迭代和试验。

然而,随着业务的发展到一定阶段,开源方案的问题开始显现。此时,已经建立的开源方案已经承接了生产业务,如何平滑地迁移和替换成为一个挑战。

XEOS V6是星辰天合提供的专业存储解决方案,它能够解决上述挑战,就像本文中的游戏公司一样,在线完成存储系统的替换和升级,轻松实现对更多客户的更优服务。


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

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

相关文章

Nginx解析漏洞

常见的解析漏洞&#xff1a; IIS 5.x/6.0解析漏洞 IIS 7.0/IIS 7.5/ Nginx <0.8.3畸形解析漏洞 Nginx <8.03 空字节代码执行漏洞 Apache解析漏洞 Nginx文件解析漏洞 对于任意文件名&#xff0c;例如:cd.jpg在后面添加/x.php后&#xff0c;即可将文件作为php解析。 原理…

博客文档续更

十、 博客前台模块-异常处理 目前我们的项目在认证出错或者权限不足的时候响应回来的Json&#xff0c;默认是使用Security官方提供的响应的格式&#xff0c;但是这种响应的格式肯定是不符合我们项目的接口规范的。所以需要自定义异常处理 我们需要去实现AuthenticationEntryP…

使用pyinstaller打包Python程序

文章目录 背景操作步骤使用anaconda创建虚拟环境使用pyinstaller打包代码路径问题 程序相对路径参考文献 背景 当写好python文件后&#xff0c;会希望可以打包成可执行文件&#xff0c;这样对方不需要下载python&#xff0c;双击就可以执行&#xff0c;简单方便。 为了满足这…

使用 L293D 电机驱动器 IC 和 Arduino 控制直流电机

如果您打算组装新的机器人朋友&#xff0c;您最终会想要学习如何控制直流电机。控制直流电机最简单且经济的方法是将 L293D 电机驱动器 IC 与 Arduino 连接。它可以控制两个直流电机的速度和旋转方向。 此外&#xff0c;它还可以控制单极步进电机&#xff08;如 28BYJ-48&#…

【SQL】MySQL中的索引,索引优化

索引是存储引擎用来快速查询记录的一种数据结构&#xff0c;按实现方式主要分为Hash索引和B树索引。 按功能划分&#xff0c;主要有以下几类 单列索引指的是对某一列单独建立索引&#xff0c;一张表中可以有多个单列索引 1. 单列索引 - 普通索引&#xff1a;

ubuntu 安装jdk21开发环境

下载 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz 第二步&#xff1a;解压 tar -zxvf jdk-21_linux-x64_bin.tar.gz 第三步&#xff1a;移动 jdk-21 目录到 /usr/local/jdk21 第四步&#xff1a;配置环境变量 sudovim/etc/profile vim/etc/…

手部关键点检测2:YOLOv5实现手部检测(含训练代码和数据集)

手部关键点检测2&#xff1a;YOLOv5实现手部检测(含训练代码和数据集) 目录 手部关键点检测2&#xff1a;YOLOv5实现手部检测(含训练代码和数据集) 1. 前言 2. 手部检测数据集说明 &#xff08;1&#xff09;手部检测数据集 &#xff08;2&#xff09;自定义数据集 3. 基…

python入门篇08- 函数进阶-参数传递

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.1 上文小总结1.1.2 上文传送门 2. python基础使用2.1 函数进阶 - 参数传递2.1.1 设置多个返回值 2.2 传参方式(多种)2.1.0 代码准备2.1.1 方式一: 参数位置传递2.1.2 方式二: 关键字参数传递2.1.3 方式三: 缺省参数传递2.1.4 方…

口袋参谋:淘宝卖家必备的市场调查分析工具!

​在淘宝天猫上开店&#xff0c;首先想到的第一个问题就是——卖什么&#xff1f; 想要解决这个疑问&#xff0c;我们就需要对一些你选的品类做市场调查&#xff0c;根据市场调查分析得出了结论&#xff0c;哪个市场竞争力小&#xff0c;那就卖哪个&#xff01; 卖家做市场调查…

Linux内存管理 (2):memblock 子系统的建立

前一篇&#xff1a;Linux内存管理 (1)&#xff1a;内核镜像映射临时页表的建立 文章目录 1. 前言2. 分析背景3. memblock 简介3.1 memblock 数据结构3.2 memblock 接口 4. memblock 的构建过程 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者…

【动态规划】121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II

提示&#xff1a;努力生活&#xff0c;开心、快乐的一天 文章目录 121. 买卖股票的最佳时机&#x1f4a1;解题思路&#x1f914;遇到的问题&#x1f4bb;代码实现&#x1f3af;题目总结 122. 买卖股票的最佳时机 II&#x1f4a1;解题思路&#x1f914;遇到的问题&#x1f4bb;代…

DC电源模块工作效率的特点

BOSHIDA DC电源模块工作效率的特点 DC电源模块是一种常见的电源供应装置&#xff0c;它在广泛应用于各种电子设备中。它是一种直流电源&#xff0c;通常用于提供低压、高电流的电源&#xff0c;如电子器件、LED灯、无线路由器、计算机硬件等。DC电源模块的工作效率是其中一个非…

关于如何进行ChatGPT模型微调的新手指南

微调是指在预训练的模型基础上&#xff0c;通过进一步的训练来调整模型以适应特定任务或领域。预训练的模型在大规模的文本数据上进行了广泛的学习&#xff0c;从中获得了一定的知识和语言理解能力。然而&#xff0c;由于预训练并不针对具体任务&#xff0c;因此需要微调来使模…

启山智软/微信小程序商城

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 启山智软一、微信小程序商城二、微信小程序商城的定义微信小程序商城特点总结 启山智软 想要了解代码规范&#xff0c;学习商城解决方案&#xff0c;点击下方官网链…

11.1.0- iDesktopX新特性之统计面内对象数

作者&#xff1a;Mei 文章目录 一、属性更新二、面内统计对象数 当我们在做数据处理时&#xff0c;可能会遇到需要统计面内包含其他对象数的需求&#xff0c;在以往的iDesktopX 11i版本中&#xff0c;一般是用属性更新功能。今年发布的iDesktopX 11.1.0版本&#xff0c;有一个新…

创新学习方式,电大搜题助您迈向成功之路

近年来&#xff0c;随着信息技术的发展&#xff0c;互联网在教育领域发挥的作用越来越显著。贵州开放大学作为国内首家电视大学&#xff0c;一直致力于创新教学模式&#xff0c;帮助学生更好地获取知识。在学习过程中&#xff0c;学生常常遇到疑难问题&#xff0c;而解决这些问…

Python作业【简单算法题】

总结&#xff1a; 这次题目当中考点是基础知识&#xff0c;还有一些简单的算法&#xff0c;比如说动态规划&#xff0c;插入排序这些&#xff0c;以及切片的知识 筛选法&#xff1a; 这里说一下我对他的理解&#xff0c;之前一直不能理解为什么开个根号就可以减少算法的复杂…

【数据结构复习之路】栈和队列(本站最全最详细讲解) 严蔚敏版

复习完上面一章【线性表】&#xff0c;我们接着复习栈和队列&#xff0c;这篇文章我写的非常详细且通俗易懂&#xff0c;看完保证会带给你不一样的收获。如果对你有帮助&#xff0c;看在我这么辛苦整理的份上&#xff0c;三连一下啦ε٩(๑> ₃ <)۶з 目录: ☆ 栈 &am…

SpringBoot篇之集成Jedis、Lettuce、Redisson

目录 前言一、详解Jedis、Lettuce 和 Redisson的区别二、SpringBoot集成2.1 集成Jedis2.2 集成Lettuce2.3 集成Redisson 总结 前言 大家好&#xff0c;我是AK&#xff0c;最近在做新项目&#xff0c;基于旧项目框架修改&#xff0c;正好最近也在整理springboot相关知识&#x…

C语言系统化精讲(四): 条件判断语句

文章目录 一、if语句二、if…else语句三、else if语句四、if语句的嵌套五、条件运算符六、switch语句的基本形式七、多路开关模式的switch语句八、if…else语句和switch语句的区别 当我们是儿童时&#xff0c;父母就告诉我们记住这句 红灯停&#xff0c;绿灯行&#xff0c;黄灯…