腾讯游戏使用Microsoft Service Fabric案例

本文转载自公众号-云就该这么玩,微软官方的地址链接:https://customers.microsoft.com/en-us/story/tencent-telecommunications-azure-service-fabric-windows-server-en

根据研究公司Newzoo的报告估计,全球游戏收入在2017年将达到1080亿美元以上,而仅在中国就预计将产生275亿,或者说中国市场占了全球市场1/4的收入。在游戏市场最核心的平台—PC游戏面临两大挑战:移动端游戏收入在上升,而且越来越多的人认为PC端用户将进一步减少。

云计算能力的快速增长带动APP从传统的客户端应用程序模式到全新“瘦客户端+丰富的云应用模式”的发展转型,它可以帮助优化开发和运营的交付过程,降低运维成本,灵活应对交付和用户新的需求。腾讯游戏希望通过微服务(microservices)技术优势给玩家带来最新游戏内容与全新的游戏体验,确保PC端游戏能够时刻保持最新的游戏内容更新。

然而,目前市面上大多数PC端游戏包均在GB级大小,每周或每两周一次的更新过度依赖传统的客户端和服务器。腾讯游戏最大的挑战是尽可能缩小PC端游戏包的大小,同时还要让用户有相同或更好的游戏体验。要实现这一突破,需要解决的三个问题1,如何将安装包大小从GBs降低到MBs。2,如何将 PC 游戏的部分客户端功能作为服务提供交付和管理。3,如何支持面向服务的操作过程和模式。

架构创新

为了确保所有玩家有最好游戏的体验,腾讯游戏开发了名为游戏云解决方案的创新型解决方案,使PC游戏客户端的部分功能通过由微软服务结构(Microsoft Service Fabric)封装,扩展的微服务交付和运营。

微软服务结构其实是一种架构从而封装、部署和管理可扩展性和可靠的微服务。类似许多微软的其他服务,如Skype业务,Power BI和Cortana等,该技术也赋予了Azure基础设置更多的创造力。有了它,腾讯游戏可以构建基于服务器的PC游戏应用程序,这些应用程序可以在服务器集群上以非常高的密度运行。同时,腾讯游戏还可以大规模部署和管理可扩展的游戏服务,并为玩家提供无缝升级/补丁的游戏体验。

过去,玩家第一次玩传统的PC游戏时,玩家必须下载并安装一个GB级别大小的新游戏客户端。一旦内容更新可用,玩家必须再次下载并安装它,这个过程是非常耗时的。

使用以上服务结构和架构,腾讯游戏可以成功得把一部分游戏客户端的功能迁移到云端进而使得游戏客户端作为一种微服务能够更为容易的运维,更为简便的更新。同时,玩家只用下载使用一个较小的客户端便可以运行。


云应用程序敏捷的开发经验

使用微软服务结构把这些规模较大的游戏应用封装在微服务中,游戏应用程序的逻辑部分可以在几秒钟内部署, 并作为服务在服务器集群中运行,同时被称为"播放器"的游戏应用程序的其余部分仍可在客户端上为图像渲染和控制工作。这使得以服务为基础的应用程序升级和补丁工作更为便捷,并为PC端游戏带来了云应用程序的敏捷开发经验。

现在,腾讯游戏团队专注于创建新游戏内容,并在游戏中实现附加值功能。“瘦客户端”模式可以使游戏开发人员从复杂的架构设计和功能开发等繁琐的日常工作中解脱,同时降低维护这些应用程序的成本。

更重要的是,服务结构支持在许多环境(包括云和内部部署、Windows服务器或Linux)中创建群集。这使得腾讯游戏能够将云应用程序部署到cross-regions数据中心,并将业务服务带到游戏玩家所在的地方。因此,游戏玩家可以随时随地畅玩PC端游戏,并且仍然享受已更新好的游戏内容且不会有任何延迟。


微服务予力PC游戏转型

作为一个微服务平台, 服务结构助力开发人员和组织者能够解决开发和管理组成微服务的云服务器应用程序过程中所面临的重大挑战。与传统的客户端-服务器模式不同, 每个服务都管理和存储自己的状态,并负责对代码和服务器状态进行扩展,以满足弹性要求。

腾讯的游戏还可以创建、部署和维护大规模的新游戏应用程序,可以根据需求从小开始,并通过成百上千的机器扩展到较大的规模。游戏应用程序功能被单独分到各种服务中,减少在构建应用程序时的复杂性,避免重复开发工作。

现在,玩家只需下载一个很小的安装包就可以运行最新的游戏内容,当他们登录到PC游戏时便可更新自动,这大大降低了新用户的购买成本。

原文地址:http://mp.weixin.qq.com/s/38UeqLcAXPr9LZGYuQpC2w


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

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

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

相关文章

div中的table内容过多时不超出div的范围解决方法

转载自 div中的table内容过多时不超出div的范围解决方法 问题描述: 在做界面展示时,table的内容过多,超出div的大小,看着table的边框盖过了div的边框,不美观。 问题解决: 因为页面整体的布局美工都设计…

属性编辑器未在PropertyEditorManager中注册?

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言好不容易将代码都写完了,结果一运行,报错!!HTTP Status 500 - Unable to convert string "${book.btime}" to class "java.util.…

DDD理论学习系列(13)-- 模块

1. 引言 Module,即模块,是指提供特定功能的相对独立的单元。提到模块,你肯定就会想到模块化设计思想,也就是功能的分解和组合。对于简单问题,可以直接构建单一模块的程序。而对于复杂问题,则可以先创建若干…

快速搭建Springboot项目的两种方式!!

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言Springboot的特点就是简单、快速和方便,使用idea不到一分钟就可以快速搭建springboot项目,并且,在这里,你不用写spring的那些乱七八糟的xml文件&…

简化springboot部署,太灵活方便了!

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言Springboot项目的编写与开发想必大家都会了,是不是和我们之前的项目比起来,简单方便了许多?今天,我们来看看除了可以直接在idea中部署和运行项目…

月旦评 之 DevOps招贤令

公元164-182年间,汝南平舆的许氏兄弟于每月初一品评人物,褒贬时政,被称为“月旦评”。所谓“子治世之能臣,乱世之奸雄也”这句许邵评价曹操的话也是来自于“月旦评”;《军事联盟》中杨修与司马懿的唇枪舌剑的精彩场景相…

springboot中配置mybatis别名该怎么写?

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。今天给大家分享的是,在springboot配置文件中,如何给mybatis实体类起别名。在以前,我们写mybatis的时候,有一个文件为mybatis-config.xml,…

Redola.Rpc 集成 Consul 服务发现

Redola.Rpc 解决了什么问题? Redola.Rpc 是一个使用 C# 开发的 RPC 框架,代码开源在 GitHub 上。目前版本仅支持 .NET Framework 4.6 以上版本,未来待系统稳健后再考虑移植 .NET Standard 和 .NET Core。 Redola.Rpc 在 0.3.2 版本中&#…

springboot+springm vc+mybatis实现增删改查案例!

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言最近这几天都在看关于springboot的内容,每天新会获得点新收获,并且都总结发在公众号中;最后经过不懈努力,不断查找相关网页,解决各种…

<table/>默认适应内容宽度造成滚动条不显示的解决方法

一、现象重现 <html><head></head><body> <table style"width: 100%;"> <tbody> <tr> <td style"width: 50%;overflow-x:auto"> <pre> 瞎子打灯笼一个盲人到亲戚家做客&#xff0c;天黑后&#xf…

java中,如何实现输入一个正整数,并将这个数字反转输出,比如输入123,输出321

如题所示&#xff0c;在java中如何实现输入一个正整数&#xff0c;然后将这个正整数反着输出来&#xff0c;代码如下&#xff1a; public static void test7(){System.out.println("请输入一个正整数&#xff1a;");Scanner sc new Scanner(System.in);int num sc…

asp.net core 1.1 项目升级至 asp.net core 2.0 preview 2

这两天把一个 asp.net core 1.1 的项目迁移到了 asp.net core 2.0 preview 2 &#xff0c;在这篇随笔中记录一下。 如果项目在有 global.json 文件&#xff0c;需要删除或修改为 .net 2.0 preview 2 的 sdk 版本号。 对于类库项目的 .csproj&#xff0c;需要把 TagetFramewo…

JSP的<c:foreach/>标签只输出一次标签体内容的坑

一、场景复现 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String[] arr{"a","b","c","d"}; request.setAttribute("arr", arr); %><!DOCTYPE HT…

springboot访问jsp页面变成直接下载?

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。前言大家在写springboot的时候不知道你们遇没遇到过这样的问题&#xff0c;当我们满怀信心的在浏览器中输入&#xff1a;localhost://8080/default&#xff0c;然后回车的时候&#xff0c;期待的页…