全球运营的游戏公司,实现存储就近访问、提升访问安全和效率

本文主要是介绍全球运营的游戏公司,实现存储就近访问、提升访问安全和效率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

7dc86658571216915dab12b1e3c1c1fc.jpeg

在上一篇文章(永远在线的网游公司,如何在线替换开源存储? )中,我们介绍了 XSKY星辰天合如何协助游戏公司解决在存储系统建设中遇到的挑战,这家游戏公司需要一直在线,以便为客户提供服务。

通过星辰天合的对象存储 XEOS V6 替换其之前部署的开源存储,这家游戏公司高效平滑的获得了四大基础架构的收益:存储搭建、数据迁移、业务切换、平滑扩容。

不过,这些只是 XEOS 的基础能力,该公司使用对象存储的过程中,还进一步利用了 XEOS 的高级功能,实现了高效的业务创新。



创新一

回源CDN模式实现多地就近访问



该游戏公司的游戏业务遍布全球,在全球都有着小帅和小美那样的游戏玩家,因此该公司需要在多个国家和地区部署存储系统,以保证所有游戏玩家能够就近访问数据,获得良好的游戏体验。

为了实现多地就近访问,该游戏公司在全球部署了三个 XEOS V6 集群,分别位于美国、新加坡和中国,以服务游戏运营的不同区域的不同游戏玩家。

每个区域的游戏玩家上传的数据都会就近写入到该区域内的存储,而当不同区域之间的玩家在游戏内进行交互时,就需要进行跨地域的数据访问。

61d44f92898b626ddedb5ee0e95a5c55.jpeg

771522b9b06deca5fb3624a890593181.jpeg

如何保证跨区域读取性能


该公司利用了 XEOS 提供的回源 CDN 模式,可以很好的解决了问题。

d90e3ecd64386ebe0ff6a3fa614999c7.jpeg

  1. 当美国的玩家需要访问中国国内数据时,位于美国的 XEOS 集群就自动使用代理读方式,从位于中国的集群获取数据并返回给用户;

  2. 对于代理访问的数据,位于美国的 XEOS 集群会将其存储在指定的缓存空间中,对于后续的美国用户访问可以本地返回快速响应;

  3. XEOS 还支持进行缓存生命周期配置,将缓存中的冷数据定期清理,减少空间占用。

通过 XEOS 的 CDN 模式,该游戏公司提供了高性能的全球就近上传和下载能力,在提高用户体验的同时,可以大幅减轻源站的压力,提高源站的性能。



创新二

全球数据主动分发



作为资深玩家,小帅和小美希望在游戏中能够始终经历新鲜的场景和故事,这就需要游戏公司不断地地进行升级。

这也正是该公司的重要能力之一。

该游戏公司的某款主打游戏,最初上线的时候,已经以每 42 天一个版本的稳定更新频率,打破了国内游戏圈的一些规则;在 3.0 版本开放之后,该公司更是宣布将更新频率缩短为五周,展现出了其异常强大的游戏工业实力。

这就意味着该游戏公司可以通过运用其强大的品控和运营能力,不断向全世界输出优质内容。

由于该游戏公司总部在中国,如何确保新版本上线时,全球玩家都能够像中国的玩家一样,实现高性能的本地访问?

这就需要游戏公司实现全球数据主动分发的业务。

而这个,可以基于上述已部署完成的 XEOS 架构来实现。

642b2d6ac1fada215877b333934130a6.jpeg

该公司利用 XEOS 实现数据的多地就近访问


如上图所示,在游戏新版本发布或者有批量素材需要全球访问时,利用 XOCP (XSKY Open Content Platform,XSKY 开放内容处理平台)提供的文件清单主动流动分发的能力,该游戏公司可以将需要提前进行全球分发的文件清单提交到 XOCP,由 XOCP 调度 XEOS 在新版本上线前先将数据提前分发到美国和新加坡集群。

通过这种方式,快速完成批量文件的全球主动分发,保障新版本上线时全球用户都能实现高性能的本地访问。



创新三

访问安全



对于玩家遍布全球各地的游戏公司来说,各国的法规和用户数据保护需求非常强烈。

该游戏公司非常重视数据安全,因此在存储系统建设中也采取了多项措施来保证数据的安全。

首先,由于 XEOS 同时承接内外网的不同业务系统的访问负载,该公司利用 XEOS V6 的 Bucket policy 功能,实现了内外网访问的隔离和控制,保证了业务的安全。

其次,该公司使用了 XEOS V6 的 KMS (Key Management Service,密钥管理服务)加密功能,与其 KMS 服务对接,实现服务端加密的密钥统一分发和管理。对于写入 XEOS 的每一个文件均生成唯一密钥进行加密后落盘,保障数据的合规存储。

第三,该公司启用了 XEOS V6 的桶访问日志功能,记录所有关键桶的访问日志,并统一写入审计桶。通过桶访问日志,可以用于分析和追溯异常数据访问行为,及时发现系统漏洞和风险。

最后,为了进一步提高访问的安全和控制能力,基于 XEOS V6 的 CORS (Cross-Origin Resource Sharing 跨源资源共享)功能,该公司增加了 Access-Control-Allow-Private-Network 限制,实现了内外网访问隔离和限制。



总结



通过使用 XEOS V6,该游戏公司解决了多地就近访问、访问安全、访问效率提升等挑战,为其游戏业务的全球化发展提供了强有力的支持,也为该公司的全球游戏玩家提供了更佳的游戏体验。

很多企业在发展壮大之后,有着在多地域部署数据中心,以便为当地客户就近提供服务的需求。然而,如何才能够让多个数据中心之间提升数据访问效率,确保用户体验,则成为了一项颇具难度的挑战

借助星辰天合的对象存储 XEOS V6 的相关高级功能,企业能够像文中所提及的这家游戏公司一样,实现更好的业务创新和更卓越的客户服务。

这篇关于全球运营的游戏公司,实现存储就近访问、提升访问安全和效率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/310636

相关文章

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

C#实现获得某个枚举的所有名称

《C#实现获得某个枚举的所有名称》这篇文章主要为大家详细介绍了C#如何实现获得某个枚举的所有名称,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... C#中获得某个枚举的所有名称using System;using System.Collections.Generic;usi

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英