CN112540773B - 一种云游戏安装方法、装置、电子设备及存储介质 - Google Patents
一种云游戏安装方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112540773B CN112540773B CN202011475574.6A CN202011475574A CN112540773B CN 112540773 B CN112540773 B CN 112540773B CN 202011475574 A CN202011475574 A CN 202011475574A CN 112540773 B CN112540773 B CN 112540773B
- Authority
- CN
- China
- Prior art keywords
- game
- group
- pooling
- cloud
- instance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000009434 installation Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000011176 pooling Methods 0.000 claims abstract description 154
- 230000004044 response Effects 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 230000008569 process Effects 0.000 abstract description 7
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/552—Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及云游戏技术领域,公开了一种云游戏安装方法、装置、电子设备及存储介质,通过创建池化组,利用组播技术,将游戏实例划分到池化组,基于组播的消息传输特性,在一对多场景下,服务器侧只需要一次游戏包体拷贝,就可以将游戏包体发送到组播组内的所有实例上,进而可以安装游戏;用户在请求启动云游戏时,服务端会为该用户分配一个游戏实例,以便用户请求的游戏可以在游戏实例中安装并运行,由于事先针对云游戏创建了池化组,池化组内游戏实例已经安装,分配实例流程将缩短,游戏启动速度也加快了,大大减少了用户等待游戏拉起的时间,提升了用户游戏体验。
Description
技术领域
本申请实施例涉及云游戏技术领域,特别涉及一种云游戏安装方法、装置、电子设备及存储介质。
背景技术
云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络将视频流传递给客户端。客户端对音视频流进行解码展示,同时回传用户操作指令到云端,在客户端,用户的游戏设备不需要任何高端处理器和显卡,只需要基本的视频解压能力就可以了。
云端运行的游戏安装有如下两种场景:1)用户请求后实时安装;2)提前申请云端实例,预先安装。
现有的上述两种游戏安装方案都需要从游戏库中下载游戏,属于单播消息,有N个下载请求,就会将游戏包体拷贝N次进行发送。由于游戏数据库存在带宽的限制,即同时传送的数据量是有限的,在大量用户同时进行云游戏的请求时,游戏数据库无法对所有的下载请求进行反馈,导致服务质量下降。目前通常在上述大并发情况下扩充游戏数据库的带宽,以保证游戏数据库可以同时处理更多的数据量。扩充游戏数据库的带宽需要对游戏数据库的硬件设备进行改良,所需成本较高,且以扩充游戏数据库的带宽的方式处理的数据有限,无法满足日益增加的用户请求量,仍存在云游戏服务质量较低的问题。
发明内容
本发明实施方式的目的在于提供一种云游戏安装方法、装置、电子设备及存储介质,解决了现有技术中扩充游戏数据库的带宽的方式处理的数据有限,所需成本较高,无法满足日益增加的用户请求量,仍存在云游戏服务质量较低的问题。
为解决上述技术问题,第一方面,本发明的实施方式提供了一种云游戏安装方法,包括:
基于游戏池化信息为云游戏构建池化组;所述游戏池化信息包括游戏ID、池化数量和组播地址;
为所述池化组申请与所述池化数量相同的游戏实例,并基于所述组播地址将所述游戏实例注册至组播组;
根据游戏ID从游戏仓库中获取所述云游戏的游戏包体,向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体。
第二方面,本发明实施例提供了一种云游戏安装装置,包括:
云化管理模块,用于基于游戏池化信息为云游戏构建至少一个池化组;所述游戏池化信息包括游戏ID、池化数量和组播地址;
实例管理模块,用于为所述池化组申请与所述池化数量相同的游戏实例,并基于所述组播地址将所述游戏实例注册至组播组;
根据游戏ID从游戏仓库中获取所述云游戏的游戏包体,向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体。
第三方面,本发明实施例提供了一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本发明第一方面实施例所述云游戏安装方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明第一方面实施例所述云游戏安装方法的步骤。
相对于现有技术而言,本发明实施方式利用组播技术,将游戏实例划分到池化组,基于组播的消息传输特性,在一对多场景下,服务器侧只需要一次游戏包体拷贝,就可以将游戏包体发送到组播组内的所有游戏实例上,进而可以安装游戏,用户在请求启动云游戏时,服务端会为该用户分配一个游戏实例,以便用户请求的游戏可以在游戏实例中安装并运行,由于事先针对云游戏创建了池化组,池化组内游戏实例已经安装,分配实例流程将缩短,游戏启动速度也加快了,大大减少了用户等待游戏拉起的时间,提升了用户游戏体验;且本发明实施例的方法可以无限扩充,没有限制,有效提高下载速度,节省带宽资源,提升资源的利用率,降低运营成本,支撑大规模用户访问下热点游戏安装,且不受用户规模限制,保证服务质量。
另外,所述为所述池化组申请与所述池化数量相同的游戏实例,具体包括:
获取空闲实例集合中所有实例的实例信息,所述实例信息包括实例ID、机房ID、机架ID和交换机ID;
去除与所述池化组的机房ID不同的实例,按与所述池化组同交换机ID、同机架ID、同机房ID的优先级顺序作为筛选条件,判断是否有满足条件的实例,若获知有满足条件的实例,则筛选出与所述池化数量相同的实例作为游戏实例,并申请加入所述池化组。
另外,判断是否有满足条件的实例后,还包括:
若判断获知没有满足条件的实例,则实时监测是否有空闲实例;
若判断获知有新增空闲实例,则申请将所述新增空闲实例加入池化组,直至申请到与所述池化数量相同的实例。
另外,所述向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体,具体包括:
基于所述游戏包体、组播地址和游戏信息生成组播消息;所述游戏信息包括版本号;
向对应组播组内的所有游戏实例发送所述组播消息;
检查组播组内所有所述游戏实例的游戏安装列表,若判断获知所述游戏安装列表中没有所述云游戏,则基于所述游戏包体安装所述云游戏,若判断获知所述游戏安装列表中有所述云游戏,且述游戏安装列表中的版本号与所述游戏包体的版本号不一致,则基于所述游戏包体重新安装所述云游戏。
另外,若判断获知所述游戏安装列表中有所述云游戏,且述游戏安装列表中的版本号与所述游戏包体的版本号不一致后,还包括:
判断所述游戏实例是否正在运行所述云游戏,若获知所述游戏实例正在运行所述云游戏,则将所述游戏包体存放在临时目录,待所述游戏实例释放后安装。
另外,以供所述游戏实例安装所述游戏包体后,还包括:
若判断获知所述云游戏已下架,或所述云游戏的安装量小于设定安装热度阈值,则拆除所述云游戏对应的所述池化组,释放所述池化组内的所有游戏实例。
另外,所述则拆除所述云游戏对应的所述池化组,释放所述池化组内的所有游戏实例,具体包括:
获取云游戏对应的池化组信息,所述池化组信息包括实例列表;
将池化组状态设置为不可用;
检查所述实例列表中任一游戏实例的状态,若判断获知游戏实例为空闲状态,则向所述游戏实例发送拆除消息;
游戏实例接收所述拆除消息,解析得到组播地址和游戏ID,基于所述组播地址关闭对应的IGMP,基于所述游戏ID卸载对应的云游戏;
若判断获知所述实例列表中所有游戏实例全部释放,则删除池化组信息,并反馈拆除响应。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明一种实施例的一种云游戏安装方法流程示意图;
图2是根据本发明实施例对池化组进行同步的流程示意图;
图3是根据本发明第二实施例提供的云游戏安装系统结构示意图;
图4是根据本发明第三实施例提供的一种服务器结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列部件或单元的系统、产品或设备没有限定于已列出的部件或单元,而是可选地还包括没有列出的部件或单元,或可选地还包括对于这些产品或设备固有的其它部件或单元。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
现有技术方案中游戏的安装都需要从游戏库中下载游戏,属于单播消息,有N个下载请求,就会将游戏包体拷贝N次进行发送。在大并发情况下,游戏库的带宽将成为瓶颈。目前的解决方案是扩容游戏库的带宽,但是在用户规模不断扩大的场景下,带宽资源是有上限的,仍存在云游戏服务质量较低的问题。
因此,本发明实施例提供一种云游戏安装方法、装置、电子设备及存储介质,利用组播技术,将游戏安装的实例划分到多个组播组,基于组播的消息传输特性,在一对多场景下,服务器侧只需要一次游戏包体拷贝,就可以将游戏包体发送到组播组内的所有实例上,进而可以安装游戏,有效提高下载速度,节省带宽资源,提升资源的利用率。以下将通过多个实施例进行展开说明和介绍。
本发明的第一实施方式涉及一种云游戏安装方法。具体流程如图1中所示。包括:
步骤S1、基于游戏池化信息为云游戏构建池化组;所述游戏池化信息包括游戏ID、池化数量和组播地址;
具体地,创建池化组时,运营人员将游戏包体上传并保存在游戏仓库中,并配置游戏属性信息、游戏池化信息,该游戏池化信息包括池化组名、机房ID、游戏ID、组播地址、池化数量,基于上述池化信息创建池化组;具体包括:
S11、通过SNMP协议,配置所选机房的路由器和交换机;
S12、路由器配置PIM-SM,配置组播地址转发表;
S13、配置交换机IGMP SNOOP协议,接收组成员注册;
S14、配置成功后,池化组创建成功。
步骤S2、为所述池化组申请与所述池化数量相同的游戏实例,并基于所述组播地址将所述游戏实例注册至组播组;
具体地,池化组创建完成后,需要将游戏实例加入至池化组,以实现组播传输;具体包括:
S21、接收池化组创建消息,解析出机房ID、池化组名、组播地址和池化数量,从空闲实例集合中,选择指定数量的实例加入到池化组,
S22、若判断获知实例列表不为空,则向实例模块发送加入池化组消息,若实例列表为空,则不发送消息,其中,实例模块负责游戏安装、启动和视频推流;
S23、实例模块接收到消息后,解析出组播地址,开启IGMP(Internet GroupManagement Protocol,互联网组管理协议)协议,并发送IGMP Report。以在主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。主机会主动向其要加入的组播组发送IGMP成员关系报告报文以声明加入,而不必等待IGMP查询器发来的IGMP查询报文。
S24、监听实例状态消息,更新池化组信息;其中,池化组信息={池化组ID,状态,池化数量,实例列表}。
S241、收到组员加入消息,将组员信息(实例ID)加入到组员列表;
S242、收到组员退出消息,将组员信息(实例ID)从组员列表删除;
S243、当组员列表不为空时,设置池化组状态可用;为空时,设置状态不可用。
S244、当池化组首次创建时,列表元素数量等于池化数量,反馈实例申请完成标志。
步骤S3、根据游戏ID从游戏仓库中获取所述云游戏的游戏包体,向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体。
具体地,池化组创建完成,运营人员可对池化组进行同步操作,包括同步游戏,游戏包体更新,其中,若是游戏包体更新,则需要重新上传游戏至游戏仓库。
在本实施例中,如下载/安装量大于设定阈值时,则将其认定为热点云游戏,对于热点云游戏,其用户规模较大,难以通过扩容游戏库的带宽来解决游戏数据库存带宽限制的问题,因此,本实施例通过利用组播技术,将游戏实例划分到池化组,基于组播的消息传输特性,在一对多场景下,服务器侧只需要一次游戏包体拷贝,就可以将游戏包体发送到组播组内的所有实例上,进而可以安装游戏;用户在请求启动云游戏时,服务端会为该用户分配一个游戏实例,以便用户请求的游戏可以在游戏实例中安装并运行,由于事先针对热门游戏创建了池化组,组内游戏实例已经安装,分配实例流程将缩短,游戏启动速度也加快了,大大减少了用户等待游戏拉起的时间,提升了用户游戏体验。
本实施例的上述方法可以无限扩充,没有限制,有效提高下载速度,节省带宽资源,提升资源的利用率,降低运营成本,支撑大规模用户访问下热点游戏安装,且不受用户规模限制,保证服务质量。
在上述实施例的基础上,作为一种优选的实施方式,所述为所述池化组申请与所述池化数量相同的游戏实例,具体包括:
获取空闲实例集合中所有实例的实例信息,所述实例信息包括实例ID、机房ID、机架ID和交换机ID;
去除与所述池化组的机房ID不同的实例,按与所述池化组同交换机ID、同机架ID、同机房ID的优先级顺序,作为筛选条件,判断是否有满足条件的实例,若获知有满足条件的实例,则筛选出与所述池化数量相同的实例作为游戏实例,并申请加入所述池化组。
具体地,在本实施例中,步骤S201具体包括:
接收到池化组创建成功的消息后,解析出机房ID,池化组名,组播地址,池化数量,从空闲实例集合中,选择指定数量的实例,即与池化数量相同的实例;其中,选择规则为:
实例信息={实例ID,位置信息}
位置信息={机房ID,机架ID,交换机ID}
选择算法:优先选择同交换机,其次同机架,最后同机房,不同机房的不选。
若判断获知没有满足条件的实例,则设置任务:获取空闲实例:
a)当有空闲实例时,则加入到池化组;
b)获取到指定数量的实例数,任务完成。
在上述各实施例的基础上,作为一种优选的实施方式,所述向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体,具体包括:
基于所述游戏包体、组播地址和游戏信息生成组播消息;所述游戏信息包括游戏ID和版本号;
向对应组播组内的所有游戏实例发送所述组播消息;
检查组播组内所有所述游戏实例的游戏安装列表,若判断获知所述游戏安装列表中没有所述云游戏,则基于所述游戏包体安装所述云游戏,若判断获知所述游戏安装列表中有所述云游戏,且述游戏安装列表中的版本号与所述游戏包体的版本号不一致,则基于所述游戏包体重新安装所述云游戏。
具体地,在本实施例中,池化组创建完成,运营人员可对池化组进行同步操作,包括同步游戏,游戏包体更新。如图2中所示,流程如下:
S31、运营人员选择池化组,进行同步操作;如判断获知是游戏包体更新,则还需要重新将游戏包体上传至游戏仓库;
S32、根据游戏ID,从游戏仓库中获取游戏包体;
S33、向池化组发送组播消息(即游戏同步消息),该组播消息包括组播地址、游戏信息和游戏包体,其中游戏信息包括游戏ID和版本号,该版本号即为游戏包体的版本号;
S34、路由器和交换机收到组播消息,按照组播地址转发表,向组播组内的游戏实例(主机)发送组播消息;
S35、游戏实例接收到组播消息,解析游戏信息得到游戏ID和版本号,进行处理:
S351、检查游戏实例的游戏安装列表,查看该游戏实例是否已安装该云游戏,若在游戏安装列表中查到未安装,则安装该云游戏;
S352、若在游戏安装列表中查到已安装,则进一步检查已安装游戏的版本号,若判断获知已安装的版本号与游戏包体的版本号不一致,则卸载已安装的版本,并安装制定版本的游戏,即安装组播消息中的游戏包体。
若已安装该云游戏,且版本号一致,则不需要重新安装。
在本实施例中,用户在启动游戏后,将根据游戏ID,分配游戏实例,由于事先针对热门游戏创建了池化组,池化组内实例游戏已经安装,分配游戏实例的流程将缩短,游戏启动速度也加快了,大大减少了用户等待游戏拉起的时间,提升了用户游戏体验。
同时游戏版本升级后,通过池化组方案,可以快速更新游戏版本,让用户及时体验到最新版本。
在上述各实施例的基础上,作为一种优选的实施方式,若判断获知所述游戏安装列表中有所述云游戏,且述游戏安装列表中的版本号与所述游戏包体的版本号不一致后,还包括:
判断所述游戏实例是否正在运行所述云游戏,若获知所述游戏实例正在运行所述云游戏,则将所述游戏包体存放在临时目录,待所述游戏实例释放后安装。
具体地,若游戏包体为游戏更新的数据包时,则由于游戏包体是通过组播技术一次性发送给组播组内的所有游戏实例,若游戏实例正在运行所述云游戏,则不能进行即时更新,需要对游戏包体进行临时存储,因此,本实施例的方法还包括:
S353、若判断获知该游戏实例已在运行该云游戏,且需要安装,则先保存在临时目录,并记载游戏ID和版本号(如/tmp/游戏ID/版本/*.*);
S354、等待游戏实例释放后,即用户推出游戏,则安装指定版本的游戏,并删除临时目录中的游戏包体。
在上述各实施例的基础上,作为一种优选的实施方式,还包括:
S4、若判断获知所述云游戏已下架,或所述云游戏的安装量小于设定安装热度阈值,则拆除所述云游戏对应的所述池化组,释放所述池化组内的所有游戏实例。
具体地,如果游戏下架,或者热度已过,不在是热门游戏,则可以将为该游戏创建的池化组拆除,释放游戏实例资源,具体流程如下:
S41、运营人员选择池化组,并进行拆除操作,发送拆除请求,所述拆除请求中包括池化组ID;
S42、基于池化组ID定位对应的池化组,进行拆除处理,释放所述池化组内的所有游戏实例。
在上述各实施例的基础上,作为一种优选的实施方式,所述则拆除所述云游戏对应的所述池化组,释放所述池化组内的所有游戏实例,具体包括:
S421、获取云游戏对应的池化组信息,所述池化组信息包括池化组ID和实例列表;
将池化组状态设置为不可用;
检查所述实例列表中任一游戏实例的状态,若判断获知游戏实例为空闲状态,则向所述游戏实例发送拆除消息;所述拆除消息包括组播地址和游戏ID;并转入步骤S422;
若判断获知所述实例列表中所有游戏实例全部释放,则删除池化组信息,并反馈拆除响应,所述拆除响应包括池化组ID、拆除状态(成功);并转入步骤S423;
S422、游戏实例接收所述拆除消息,解析得到组播地址和游戏ID,基于所述组播地址关闭对应的IGMP,基于所述游戏ID卸载对应的云游戏;
S423、接收拆除响应,解析出池化组ID和拆除状态设置池化组信息,具体包括:
(1)通过SNMP协议,配置所选机房的路由器和交换机;
(2)路由器配置PIM-SM,取消组播地址转发表;
(3)取消交换机IGMP SNOOP协议;
(4)配置成功后,设置池化组拆除成功。
本发明实施方式相对于现有技术而言,利用组播技术,将游戏实例划分到多个组播组,基于组播的消息传输特性,在一对多场景下,服务器侧只需要一次游戏包体拷贝,就可以将游戏包体发送到组播组内的所有实例上,进而可以安装游戏,本发明实施例的方法可以无限扩充,没有限制,有效提高下载速度,节省带宽资源,提升资源的利用率,降低运营成本,支撑大规模用户访问下热点游戏安装,且不受用户规模限制,保证服务质量。
本发明第二实施例还提供了一种云游戏安装系统,基于上述各实施例中的云游戏安装方法,包括云化管理模块10、实例管理模块30、客户端模块40、实例模块和游戏仓库20,其中:
云化管理模块10,用于基于游戏池化信息为云游戏构建至少一个池化组;所述游戏池化信息包括游戏ID、池化数量和组播地址;
实例管理模块30,用于为所述池化组申请与所述池化数量相同的游戏实例,并基于所述组播地址将所述游戏实例注册至组播组;
根据游戏ID从游戏仓库20中获取所述云游戏的游戏包体,向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体。
客户端模块40用于展现游戏列表,并采集游戏操控指令和展现游戏画面;实例模块用于进行游戏安装、启动和视频推流;游戏仓库20用于保存游戏包体。
具体地,在本实施例中,创建池化组时,运营人员在云化管理模块10上传游戏包体,并配置游戏属性,云化管理模块10将游戏包体保存在游戏仓库20,运营人员配置游戏池化信息,云化管理模块10根据游戏池化信息创建池化组,并通知实例管理模块30,该通知中包括池化组名、组播地址和池化数量。
实例管理模块30受到通知后,解析出机房ID,池化组名,组播地址,池化数量,从空闲实例集合中,选择指定数量的实例;实例管理模块30监听实例状态消息,更新池化组信息。
如果实例列表不为空,则向实例模块发送加入池化组消息,包括组播地址;否则,不发送消息;实例模块收到消息后,解析出组播地址,开启IGMP协议,并发送IGMMP Report。
当池化组首次创建时,实例列表元素数量等于池化数量,向云化管理模块10反馈实例申请完成标志。
云化管理模块10收到池化组创建完成的消息,解析出池化组ID,更新池化组状态。
具体地,在本实施例中,在池化组创建完成,运营人员可对池化组进行同步操作,包括同步游戏,游戏包体更新,具体为:
运营人员选择池化组,点击“同步按钮”;
云化管理模块10根据游戏ID,从游戏仓库20获取游戏;
云化管理模块10向池化组发送游戏同步消息(组播消息),包含组播地址,游戏信息,游戏包体;
路由器和交换机收到组播消息,按照组播转发表,向组播组内主机(游戏实例)发送同步消息;
实例模块接收组播消息,解析游戏信息,包括游戏ID和版本号,并进行处理:
S351、检查游戏实例的游戏安装列表,查看该游戏实例是否已安装该云游戏,若在游戏安装列表中查到未安装,则安装该云游戏;
S352、若在游戏安装列表中查到已安装,则进一步检查已安装游戏的版本号,若判断获知已安装的版本号与游戏包体的版本号不一致,则卸载已安装的版本,并安装制定版本的游戏,即安装组播消息中的游戏包体;
S353、若判断获知该游戏实例已在运行该云游戏,且需要安装,则先保存在临时目录,并记载游戏ID和版本号(如/tmp/游戏ID/版本/*.*);
S35、等待游戏实例释放后,即用户推出游戏,则安装指定版本的游戏,并删除临时目录中的游戏包体。
具体地,在本实施例中,如果游戏下架,或者热度已过,不在是热门游戏,则可以将为该游戏创建的池化组拆除,释放游戏实例资源。流程如下:
步骤1.运营人员选择池化组,点击“拆除按钮”;
步骤2.云化管理模块10向实例管理模块30发送拆除请求,包含池化组ID;
步骤3.实例管理模块30接收消息,解析出池化组ID,进行处理:
3.1获取该池化组信息,包括池化组ID,实例列表;
3.2设置池化组状态为不可用;
3.3检查实例状态,如果是空闲状态,则向实例发送拆除消息,包括组播地址,游戏ID;转步骤4;
3.4如果实例全部释放,则删除该池化组信息,向云化管理模块10发送拆除响应,包含池化组ID,拆除状态(成功);转步骤5;
步骤4.实例模块接收拆除消息,解析组播地址和游戏ID;
4.1实例关闭IGMP;
4.2实例卸载指定游戏;
步骤5.云化管理模块10收到响应消息,解析出池化组ID和状态,设置池化组信息;
5.1通过SNMP协议,配置所选机房的路由器和交换机;
5.2路由器配置PIM-SM,取消组播地址转发表;
5.3取消交换机IGMP SNOOP协议;
5.4配置成功后,云化管理模块10设置池化组拆除成功。
本发明第三实施方式涉及一种服务器,如图4所示,包括处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如上述各实施例所述云游戏安装方法的步骤。例如包括:
步骤S1、基于游戏池化信息为云游戏构建池化组;所述游戏池化信息包括游戏ID、池化数量和组播地址;
步骤S2、为所述池化组申请与所述池化数量相同的游戏实例,并基于所述组播地址将所述游戏实例注册至组播组;
步骤S3、根据游戏ID从游戏仓库中获取所述云游戏的游戏包体,向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体;
S4、若判断获知所述云游戏已下架,或所述云游戏的安装量小于设定安装热度阈值,则拆除所述云游戏对应的所述池化组,释放所述池化组内的所有游戏实例。
其中,存储器和处理器采用通信总线方式连接,通信总线可以包括任意数量的互联的总线和桥,通信总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在通信总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现如上述各实施例所述云游戏安装方法的步骤。例如包括:
步骤S1、基于游戏池化信息为云游戏构建池化组;所述游戏池化信息包括游戏ID、池化数量和组播地址;
步骤S2、为所述池化组申请与所述池化数量相同的游戏实例,并基于所述组播地址将所述游戏实例注册至组播组;
步骤S3、根据游戏ID从游戏仓库中获取所述云游戏的游戏包体,向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体;
S4、若判断获知所述云游戏已下架,或所述云游戏的安装量小于设定安装热度阈值,则拆除所述云游戏对应的所述池化组,释放所述池化组内的所有游戏实例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种云游戏安装方法,其特征在于,包括:
基于游戏池化信息为云游戏构建池化组;所述游戏池化信息包括游戏ID、机房ID、池化组名、池化数量和组播地址;
为所述池化组申请与所述池化数量相同的游戏实例,并基于所述组播地址将所述游戏实例注册至组播组;
根据游戏ID从游戏仓库中获取所述云游戏的游戏包体,向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体;
所述基于游戏池化信息为云游戏构建池化组,包括:
通过SNMP协议,配置所选机房的路由器和交换机;路由器配置PIM-SM,配置组播地址转发表;
配置交换机IGMP SNOOP协议,接收组成员注册;配置成功后,池化组创建成功。
2.根据权利要求1所述的云游戏安装方法,其特征在于,所述为所述池化组申请与所述池化数量相同的游戏实例,具体包括:
获取空闲实例集合中所有实例的实例信息,所述实例信息包括实例ID、机房ID、机架ID和交换机ID;
去除与所述池化组的机房ID不同的实例,按与所述池化组同交换机ID、同机架ID、同机房ID的优先级顺序作为筛选条件,判断是否有满足条件的实例,若获知有满足条件的实例,则筛选出与所述池化数量相同的实例作为游戏实例,并申请加入所述池化组。
3.根据权利要求2所述的云游戏安装方法,其特征在于,判断是否有满足条件的实例后,还包括:
若获知没有满足条件的实例,则实时监测是否有空闲实例;
若获知有新增空闲实例,则申请将所述新增空闲实例加入池化组,直至申请到与所述池化数量相同的实例。
4.根据权利要求1所述的云游戏安装方法,其特征在于,所述向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体,具体包括:
基于所述游戏包体、组播地址和游戏信息生成组播消息;所述游戏信息包括版本号;
向对应组播组内的所有游戏实例发送所述组播消息;
检查组播组内所有所述游戏实例的游戏安装列表,若判断获知所述游戏安装列表中没有所述云游戏,则基于所述游戏包体安装所述云游戏,若判断获知所述游戏安装列表中有所述云游戏,且述游戏安装列表中的版本号与所述游戏包体的版本号不一致,则基于所述游戏包体重新安装所述云游戏。
5.根据权利要求4所述的云游戏安装方法,其特征在于,若判断获知所述游戏安装列表中有所述云游戏,且述游戏安装列表中的版本号与所述游戏包体的版本号不一致后,还包括:
判断所述游戏实例是否正在运行所述云游戏,若获知所述游戏实例正在运行所述云游戏,则将所述游戏包体存放在临时目录,待所述游戏实例释放后安装。
6.根据权利要求 1所述的云游戏安装方法,其特征在于,以供所述游戏实例安装所述游戏包体后,还包括:
若判断获知所述云游戏已下架,或所述云游戏的安装量小于设定安装热度阈值,则拆除所述云游戏对应的所述池化组,释放所述池化组内的所有游戏实例。
7.根据权利要求6所述的云游戏安装方法,其特征在于,所述则拆除所述云游戏对应的所述池化组,释放所述池化组内的所有游戏实例,具体包括:
获取云游戏对应的池化组信息,所述池化组信息包括实例列表;
将池化组状态设置为不可用;
检查所述实例列表中任一游戏实例的状态,若判断获知游戏实例为空闲状态,则向所述游戏实例发送拆除消息;
游戏实例接收所述拆除消息,解析得到组播地址和游戏ID,基于所述组播地址关闭对应的IGMP,基于所述游戏ID卸载对应的云游戏;
若判断获知所述实例列表中所有游戏实例全部释放,则删除池化组信息,并反馈拆除响应。
8.一种云游戏安装装置,其特征在于,包括:
云化管理模块,用于基于游戏池化信息为云游戏构建至少一个池化组;所述游戏池化信息包括游戏ID、机房ID、池化组名、池化数量和组播地址;
所述基于游戏池化信息为云游戏构建至少一个池化组包括:
通过SNMP协议,配置所选机房的路由器和交换机;路由器配置PIM-SM,配置组播地址转发表;
配置交换机IGMP SNOOP协议,接收组成员注册;配置成功后,池化组创建成功;
实例管理模块,用于为所述池化组申请与所述池化数量相同的游戏实例,并基于所述组播地址将所述游戏实例注册至组播组;
根据游戏ID从游戏仓库中获取所述云游戏的游戏包体,向所述组播组内的所有所述游戏实例发送所述游戏包体,以供所述游戏实例安装所述游戏包体。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7任一项所述云游戏安装方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述云游戏安装方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011475574.6A CN112540773B (zh) | 2020-12-14 | 2020-12-14 | 一种云游戏安装方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011475574.6A CN112540773B (zh) | 2020-12-14 | 2020-12-14 | 一种云游戏安装方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112540773A CN112540773A (zh) | 2021-03-23 |
CN112540773B true CN112540773B (zh) | 2023-08-01 |
Family
ID=75020185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011475574.6A Active CN112540773B (zh) | 2020-12-14 | 2020-12-14 | 一种云游戏安装方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112540773B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113315831B (zh) * | 2021-05-26 | 2023-01-31 | 广州虎牙科技有限公司 | 一种云游戏开播方法、装置、设备及存储介质 |
CN113742328B (zh) * | 2021-09-07 | 2023-07-28 | 北京百度网讯科技有限公司 | 应用数据清理方法、装置、设备、存储介质及程序产品 |
CN113730919B (zh) * | 2021-09-10 | 2024-01-09 | 北京百度网讯科技有限公司 | 云应用预启动方法、装置、设备、存储介质以及程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576828A (zh) * | 2009-06-01 | 2009-11-11 | 中兴通讯股份有限公司 | 软件版本升级方法及装置、服务器 |
CN105554096A (zh) * | 2015-12-11 | 2016-05-04 | 鹏博士电信传媒集团股份有限公司 | 一种云游戏云端服务的实现方法及系统 |
CN106648937A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 一种安卓应用的广播代理方法和装置 |
WO2018019299A1 (zh) * | 2016-07-28 | 2018-02-01 | 中兴通讯股份有限公司 | 一种虚拟宽带接入方法、控制器和系统 |
CN109324908A (zh) * | 2017-07-31 | 2019-02-12 | 华为技术有限公司 | Netlink资源的容器隔离方法及装置 |
CN110633143A (zh) * | 2019-08-16 | 2019-12-31 | 咪咕视讯科技有限公司 | 一种云游戏资源调度方法、服务器及存储介质 |
CN112073754A (zh) * | 2020-11-11 | 2020-12-11 | 深圳乐播科技有限公司 | 一种云游戏投屏方法、装置、计算机设备、计算机可读存储介质及云游戏投屏交互系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9806896B2 (en) * | 2014-09-30 | 2017-10-31 | Nicira, Inc. | Optimized message retransmission mechanism for distributed storage virtualization directory system |
US10709991B2 (en) * | 2015-04-02 | 2020-07-14 | Nvidia Corporation | System and method for cooperative application control |
-
2020
- 2020-12-14 CN CN202011475574.6A patent/CN112540773B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576828A (zh) * | 2009-06-01 | 2009-11-11 | 中兴通讯股份有限公司 | 软件版本升级方法及装置、服务器 |
CN105554096A (zh) * | 2015-12-11 | 2016-05-04 | 鹏博士电信传媒集团股份有限公司 | 一种云游戏云端服务的实现方法及系统 |
WO2018019299A1 (zh) * | 2016-07-28 | 2018-02-01 | 中兴通讯股份有限公司 | 一种虚拟宽带接入方法、控制器和系统 |
CN106648937A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 一种安卓应用的广播代理方法和装置 |
CN109324908A (zh) * | 2017-07-31 | 2019-02-12 | 华为技术有限公司 | Netlink资源的容器隔离方法及装置 |
CN110633143A (zh) * | 2019-08-16 | 2019-12-31 | 咪咕视讯科技有限公司 | 一种云游戏资源调度方法、服务器及存储介质 |
CN112073754A (zh) * | 2020-11-11 | 2020-12-11 | 深圳乐播科技有限公司 | 一种云游戏投屏方法、装置、计算机设备、计算机可读存储介质及云游戏投屏交互系统 |
Non-Patent Citations (3)
Title |
---|
Serving dynamic groups in application-level multicast;Xing Jin;《HPSR. 2005 Workshop on High Performance Switching and Routing, 2005.》;1-5 * |
一种支持大型多人在线游戏的覆盖网组播生成树算法;林巧民;《 南京邮电大学学报(自然科学版)》;( 96-100 * |
织女星游戏网格设计与实现;王宇;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;I139-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN112540773A (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112540773B (zh) | 一种云游戏安装方法、装置、电子设备及存储介质 | |
EP1969476B1 (en) | Peer distribution point feature for system management server | |
WO2009098909A1 (ja) | 仮想アプライアンス配備システム | |
CN111770172B (zh) | 消息中间件消费代理方法、装置、代理服务器及存储介质 | |
US11432137B2 (en) | Service notification method for mobile edge host and apparatus | |
US20070130362A1 (en) | Method and apparatus for facilitating management of multicast delivery to mobile devices | |
JP5831205B2 (ja) | データ共有プログラム、情報処理装置、及びデータ共有システム | |
CN111756795B (zh) | 一种服务信息管理方法、装置、电子设备及存储介质 | |
CN107404509B (zh) | 分布式服务配置系统及信息管理方法 | |
EP4071609A1 (en) | Node management method, device and apparatus, storage medium, and system | |
CN106603601A (zh) | 服务处理方法、装置、系统及终端设备 | |
US12032952B2 (en) | Service upgrade method, apparatus, and system | |
CN105245500A (zh) | 一种多媒体资源共享方法和装置 | |
WO2017128713A1 (zh) | 订阅消息的发布方法及装置 | |
CN111478953A (zh) | 服务器集群的自构建方法、装置、系统、设备及存储介质 | |
CN104219312A (zh) | 一种安装程序的方法及装置 | |
CN111698281B (zh) | 一种资源下载方法、装置、电子设备及存储介质 | |
CN111885103A (zh) | 资源处理方法、服务器、电子设备及存储介质 | |
CN106375132B (zh) | 一种云服务器系统的管理方法及云服务器系统 | |
WO2021057150A1 (zh) | 端口共享方法及装置、存储介质、电子装置 | |
CN113115065A (zh) | 一种基于直播的数据处理方法及装置 | |
CN114443059A (zh) | Kubernetes集群的部署方法、装置及设备 | |
CN112566221A (zh) | 信息同步方法、装置、设备及可读存储介质 | |
CN110730172A (zh) | 一种视频会议的实现方法及设备 | |
CN111435946A (zh) | 下载资源的方法、装置、终端设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |