CN111277628B - 服务器配置方法、装置及业务服务器 - Google Patents

服务器配置方法、装置及业务服务器 Download PDF

Info

Publication number
CN111277628B
CN111277628B CN202010028335.XA CN202010028335A CN111277628B CN 111277628 B CN111277628 B CN 111277628B CN 202010028335 A CN202010028335 A CN 202010028335A CN 111277628 B CN111277628 B CN 111277628B
Authority
CN
China
Prior art keywords
server
service
cloud
cloud server
state
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
Application number
CN202010028335.XA
Other languages
English (en)
Other versions
CN111277628A (zh
Inventor
俞良玉
管鹤鸣
马笑彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010028335.XA priority Critical patent/CN111277628B/zh
Publication of CN111277628A publication Critical patent/CN111277628A/zh
Application granted granted Critical
Publication of CN111277628B publication Critical patent/CN111277628B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

本申请公开了一种服务器配置方法、装置及业务服务器,涉及云技术领域。其中,该方法包括:接收第一客户端发送的服务器分配请求,该请求包括需要分配的服务器所属的目标类型;调用云平台的服务器创建接口,当云平台创建目标类型的云服务器后,在目标类型的云服务器中开启至少一个业务进程,将具有业务进程的目标类型的云服务器作为业务场景服务器分配给第一客户端;接收第一客户端发送的业务场景信息,将业务场景信息配置于业务场景服务器的业务进程中。通过上述设计,可以根据用户需求自动部署服务器,并在服务器上自动部署用户需要的业务场景,提高了部署业务场景的效率。

Description

服务器配置方法、装置及业务服务器
技术领域
本申请涉及云技术领域,更具体地,涉及一种服务器配置方法、装置及业务服务器。
背景技术
一些业务可能具有多个业务场景,多个业务场景通常是由业务提供方预先提供,并针对每个业务场景分别部署了一定数量的业务进程。这种情况下,如果需要增加新的业务场景或是增加部署某个业务场景的业务进程,都需业务提供方通过人工方式线下部署,效率较低,非常不便。
发明内容
本申请提出了一种服务器配置方法、装置及业务服务器,以改善上述问题。
第一方面,本申请实施例提供了一种服务器配置方法,包括:接收第一客户端发送的云服务器分配请求,云服务器分配请求包括需要分配的云服务器所属的目标类型;调用云平台的云服务器创建接口,当云平台创建目标类型的云服务器后,在目标类型的云服务器中开启业务进程,将具有业务进程的目标类型的云服务器作为业务场景服务器分配给第一客户端;接收第一客户端发送的业务场景信息,将业务场景信息配置于业务场景服务器的业务进程中。
第二方面,本申请实施例提供了一种服务器配置装置,包括第一接口模块、第二接口模块和配置模块。其中,第一接口模块用于接收第一客户端发送的云服务器分配请求,云服务器分配请求包括需要分配的云服务器所属的目标类型。第二接口模块用于调用云平台的云服务器创建接口,当云平台创建目标类型的云服务器后,在目标类型的云服务器中开启游戏进程,并将具有业务进程的目标类型的云服务器作为业务场景服务器分配给第一客户端。配置模块用于接收第一客户端发送的业务场景信息,将业务场景信息配置与业务场景服务器的业务进程中。
第三方面,本申请实施例提供了一种业务服务器,包括:一个或多个处理器;存储器;一个或多个程序。其中,一个或多个程序被存储在存储器中并被配置为由所述一个或多个处理器执行,一个或多个程序配置用于执行上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中存储有程序代码,所述程序代码可被处理器调用执行上述的方法。
本申请提供的方案,响应于第一客户端的云服务器分配请求,调用云平台的云服务器创建接口,当云平台创建第一客户端请求分配的目标类型的云服务器后,在目标类型的云服务器中开启业务进程,将具有业务进程的目标类型的云服务器作为业务场景服务器分配给第一客户端,再将第一客户端发送的业务场景信息配置于业务场景服务器的业务进程中。如此,可以根据用户需求自动地部署服务器,并在服务器上部署用户需要的业务场景,提高了业务场景的部署效率。
此外,通过上述设计,还丰富了游戏场景的类型,改善了用户体验,提高了用户粘性。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种适用于本申请实施例的应用环境示意图。
图2示出了根据本申请一个实施例的服务器配置方法流程图。
图3是本申请实施例提供的业务客户端的一个显示界面示意图。
图4是本申请实施例提供的业务客户端的另一个显示界面示意图。
图5是本申请另一个实施例的服务器配置方法流程图。
图6是图5所示服务器配置方法的另一流程图。
图7是图5所示服务器配置方法的又一流程图。
图8是本申请实施例的一个具体例子的应用环境示意图。
图9是图5所示服务器配置方法的又一流程图。
图10是图5所示服务器配置方法的又一流程图。
图11是图5所示服务器配置方法的又一流程图。
图12是图11所示流程的一个交互流程图。
图13是图11所示流程的另一个交互流程图。
图14是图5所示服务器配置方法的又一流程图。
图15是图5所示服务器配置方法的再一流程图。
图16是本申请实施例提供的一种业务服务器的框图。
图17是本申请实施例提供的一种服务器配置装置的框图。
图18是本申请实施例的用于保存或者携带实现根据本申请实施例的服务器配置方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
一些业务通常可以有多种业务场景可供用户选择。以游戏业务为例,沙盒游戏、开放世界游戏等通常具有多个游戏场景。比如,沙盒游戏是由沙盘游戏演变而来,其游戏场景包括一个或多个地图区域,用户可以在游戏场景中进行角色扮演、设计、驾驶、探险等,此外还可以利用游戏中的物件制造特定物体。
实际应用中,游戏提供方通常只提供有限的几种游戏场景,以及针对不同的游戏场景分别设置一定数量的游戏房间。其中,游戏房间是运行在服务器上的一个游戏进程,其中配置有游戏场景信息,以沙盒游戏为例,游戏场景信息可以是游戏地图。用户可以通过客户端与游戏进程连接,从而在该游戏进程中的游戏场景下参与游戏。采用这种方式,当监控到某种游戏场景的游戏房间数量不足时,只能人为地增加相应的服务器并在增加的服务器上部署该游戏场景,从而形成新的游戏房间。这种方式效率差,无法及时部署新的游戏房间。
此外,近年来,随着用户对业务场景的需求越来越多样化,UGC(User GeneratedContent,用户生成内容)应运而生。UGC是指用户可以自行设计业务场景(例如,游戏玩法、上述的游戏场景等)并通过互联网平台展示或提供给其他用户使用。但是,用户通常只能在PC(Personal Computer,个人计算机)端部署业务场景,供其他用户参与,但是PC端的性能不佳,体验差。
发明人经过长期的研究,提出一种服务器配置方法、装置及业务服务器,可以自动部署用户需要的服务器,并在服务器上自动部署用户需要的业务场景,既丰富了业务场景的类型,又可以提高业务场景的部署效率。下面对该内容进行详细描述。
请参照图1,图1为一种适用于本申请实施例的应用环境示意图。其中,业务服务器100、云平台200和用户终端300可以通过网络相互通信连接。
云平台200例如可以是公有云平台,通常是第三方提供商为用户提供的能够使用的云,公有云一般可通过互联网(Internet)使用,可能是免费或成本低廉的,其核心属性是共享资源服务。云平台200有许多实例(instance)210,实例又可以称为云服务器或云虚拟机(Cloud Virtual Machine,CVM),一些场景中,实例还可以被称为专用服务器(DedicatedServer,DS),可以在当今整个开放的公有网络中提供服务。
用户终端300可以是智能终端、笔记本电脑、PC等任意具有数据处理功能和通信功能的设备。用户终端300可以安装有业务客户端,并可以通过业务客户端访问业务服务器100。业务服务器100可以是一个独立的服务器,也可以是多个服务器组成的集群。可选地,业务服务器100可以包括:与云平台200通信的接口控制单元,以及与用户终端300中的业务客户端通信的业务接口单元。以业务服务器100是游戏服务器为例,接口控制单元例如可以为接口控制器(API-Controller),业务接口单元例如可以为游戏接口单元(Game-API)。
一个例子中,上述的业务客户端可以是游戏客户端,业务服务器100可以是游戏服务器,本实施例对此没有限制。
请参照图2,图2为本申请一实施例提供的一种服务器配置方法的流程示意图。下面以该方法应用于图1所示的业务服务器100为例,对该方法的内容进行详细阐述。
S101,接收第一客户端发送的云服务器分配请求,云服务器分配请求包括需要分配的云服务器所属的目标类型。
其中,第一客户端可以是向业务服务器100发送云服务器分配请求的任意业务客户端,安装于用户终端300中。
一种实施方式中,业务客户端的显示界面上显示有可供用户请求分配的云服务器的类型,用户选择的类型即为目标类型。本实施例中,类型可以是云服务器的性能配置,例如可以是具有2个处理核、4G内存的云服务器,又比如可以是具有4个处理核、8G内存的云服务器。
另一种实施方式中,业务客户端的显示界面可以显示有可选择的用户数量,用户数量是指用户希望分配的服务器能够支持的、参与业务的用户数量,不同用户数量与不同的服务器类型(如,服务器性能配置)对应,对应关系可以配置于业务服务器100中。
例如图3给出了一个游戏客户端的显示界面,其中示出了两种可供选择的玩家数量:2个玩家和4个玩家。玩家数量为2可以与上述的具有2个处理核、4G内存的云服务器对应,玩家数量为4可以与上述的具有4个处理核、8G内存的云服务器对应。实施过程中,当用户选择某一玩家数量时,该玩家数量对应的云服务器的类型即为目标类型。
当用户在业务客户端的显示界面一上选择目标类型的云服务器时,该业务客户端可以作为第一客户端生成包括目标类型的云服务器分配请求,并将生成的云服务器分配请求发送给业务服务器100。
可选地,业务客户端还可以显示有分配时长,以供用户选择或设置。分配时长是指将云服务器分配给业务客户端使用的时长。
一些方式中,例如图3所示,使用时长可以默认为1个月;另一些方式中,用户可以在业务客户端上对分配时长进行设置。在显示有分配时长的情况下,第一客户端发送的云服务器分配请求还可以包括用户选择或设置的分配时长。
S102,调用云平台的云服务器创建接口,当云平台中创建所述目标类型的云服务器后,在所述目标类型的云服务器中开启业务进程,将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给第一客户端。
云平台200通常提供有多种API(Application Programming Interface,应用程序编程接口),例如资源池管理API、关闭实例API、新建实例API、重启实例API、开启实例API、实例查询API、回收实例API等。本实施例中的云服务器创建接口例如可以是前述的新建实例API。
业务服务器100可以封装有云平台200的上述API,从而可以在接收到云服务器分配请求时,将云服务器分配请求中的目标类型、分配时长等作为参数,传递给本服务器封装的新建实例API,并调用封装的新建实例API。
以业务服务器100是上述的包括API-Controller和Game-API的游戏服务器为例,云平台200提供的多种API可以封装于API-Controller中。示例性地,API-Controller可以在接口A1中封装上述的新建实例API,接口A1可以为:POST http://{apiController_server}/YYY/…/allocate。
其中,“POST”表示接口A1生成的类型,“POST”后的字符“http://{apiController_server}/YYY/…/allocate”表示接口A1在游戏服务器中的路径,又称“资源路径”,“allocate”为接口名称。
上述示例中,第一客户端与游戏服务器的Game-API通信连接,则第一客户端发送的云服务器分配请求可以到达Game-API。Game-API在接收到第一客户端发送的云服务器分配请求时,可以调用API-Controller提供的接口A1,则API-Controller可以调用接口A1中封装的云平台200的新建实例API,从而生成一新建请求,该新建请求包括需要新建的云服务器的目标类型和分配时长。该新建请求被发送给云平台200,云平台200接收到该新建请求,则可以根据该新建请求创建一个目标类型的云服务器,并在创建成功后,将该云服务器的实例信息返回给API-Controller,则API-Controller可以在该云服务器开启至少一个游戏进程(即,业务进程)。
创建的目标类型的云服务器在开启游戏进程后即可作为第一客户端的业务场景服务器被分配给第一客户端,则第一客户端对应的用户可以在其业务场景服务器的游戏进程中配置游戏场景信息。其中,游戏进程是通过运行游戏服务端程序形成的服务(service)进程,可以将其视为一个游戏房间,根据其中配置的游戏场景信息的不同,可以支持一个、两个或多个用户的客户端与该游戏进程连接,并参与到其配置的游戏场景信息所对应的游戏场景中。
本实施例中,在创建的目标类型的云服务器中开启的业务进程的数量可以与目标类型对应,例如,目标类型是指2个处理核、4G内存,则开启的业务进程的数量可以为1;又如,目标类型是指4个处理核、8G内存,则开启的业务进程的数量可以为2。本实施例对此没有限制。
S103,接收第一客户端发送的业务场景信息,将所述业务场景信息配置于所述业务场景服务器的业务进程中。
本实施例中,业务服务器100可以为每个云服务器及云服务器中的每个业务进程设置标识信息。为了便于描述,将业务进程的标识信息描述为第一标识信息,将云服务器的标识信息称为第二标识信息。其中,第一标识信息可以是业务服务器100生成的用于唯一表示游戏进程的标识符。第二标识信息可以是业务服务器100生成的用于唯一表示云服务器的标识符。所述标识符例如可以是UUID(Universally Unique Identifier,通用唯一识别码)。可以理解,云服务器在云平台200中还可以具有用于表示其身份的标识符,例如可以为服务器ID。
实施过程中,业务服务器100在云平台200创建的云服务器中开启业务进程之后,可以将该云服务器的第二标识信息以及该云服务器包括的每个业务进程的第一标识信息发送至第一客户端,从而实现将该云服务器作为业务场景服务器分配给第一客户端。第一客户端可以以标签的形式对接收到的第一标识信息和第二标识信息进行显示。
例如图4所示,其中示例性地给出了游戏客户端的一个显示界面。该显示界面示出了分配给用户A的三个云服务器的标签S1、S2、S3,及每个云服务器中包括的一个游戏进程的标签,例如,S1中的“AAAA”,S2中的“BBBB”,S3中的“CCCC”。可以理解,“AAAA”、“BBBB”和“CCCC”仅为示意,可以替换为其他字符。
当用户在第一客户端选中或点击某一业务场景服务器的标签时,第一客户端可以生成包括该业务场景服务器的第二标识信息的连接请求发送给业务服务器100。对应地,当用户在第一客户端选中或点击某一业务进程的标签时,第一客户端可以生成包括该业务进程的第一标识信息的连接请求发送给业务服务器100。
业务客户端还可以设置有供用户上传业务场景信息的选项标签,例如图4所示的显示界面二中的“添加游戏”的标签Tab-1。用户可以点击Tab-1,并选择自定义的游戏场景信息和一个业务场景服务器,将选择的游戏场景信息上传至游戏服务器。如此,游戏服务器可以将第一客户端发送的游戏场景信息配置于用户选择的业务场景服务器的游戏进程中。如此,游戏进程即可成为该游戏场景信息对应的游戏场景下的游戏房间。其中,游戏场景信息例如可以是针对游戏玩法的设置信息,又如可以是游戏地图、游戏环境等,本实施例对此没有限制。
再次以上述包括Game-API和API-Controller的游戏服务器为例,对业务场景信息的配置过程进行阐述。示例性地,该游戏服务器还可以包括一核心服务端(Core-Server),实施过程中,第一客户端发送给游戏服务器的游戏场景信息可以首先到达Core-Server,Core-Server可以将游戏场景信息和业务场景服务器的第二标识信息关联并存储于云平台200的存储装置中,则云平台200可以从存储装置中获取相互对应的第二标识信息和游戏场景信息,并根据获取的第二标识信息,将获取的游戏场景信息配置于该第二标识信息表征的业务场景服务器的每个游戏进程中。
通过图2所示流程,实现了对用户上传的业务场景信息的自动部署,既丰富了业务场景的多样性,又提高了游戏场景部署的效率,改善了用户体验。
请参照图5,图5为本申请另一实施例提供的一种服务器配置方法的流程示意图,下面以该方法应用于图1所示的业务服务器100为例,对该方法的步骤进行阐述。
S501,接收第一客户端发送的云服务器分配请求,云服务器分配请求包括需要分配的云服务器所属的目标类型。
其中,S501的详细实现过程与前一实施例中的S101类似,在此不再赘述。
S502,获取云平台包括的所述目标类型的云服务器中处于空闲状态的云服务器的数量,作为第一数量。
本实施例中,业务服务器100在云平台200成功创建一云服务器,并在该云服务器中开启业务进程之后,可以在本服务器中将该云服务器中的业务进程的状态记录为空闲状态,将该云服务器的状态记录为空闲状态。
进一步地,业务服务器100在接收到第一客户端发送的业务场景信息并配置于第一客户端分配到的云服务器(即,业务场景服务器)的业务进程中时,可以在本服务器中将业务场景服务器的业务进程的状态从空闲状态更新为运行状态,将业务场景服务器的状态从空闲状态更新为运行状态。
此外,考虑到在业务进程中配置业务场景信息需要一定时长,为了避免后续过程中将正在配置业务场景信息的云服务器分配给其他业务客户端,可以将正在配置业务场景信息的业务进程的状态更新为配置状态,将处于配置状态的业务进程所在的云服务器的状态也更新为配置状态。
上述的各种状态可以采用特定的字符表示,比如,空闲状态例如可以用字符“idle”表示,运行状态例如可以用字符“running”表示,配置状态例如可以用“working”或“configuring”表示。前述的字符表示仅为举例,本实施例对此没有限制。
实施过程中,业务服务器100可以获取处于任一状态的云服务器的数量。详细地,业务服务器100提供有确定处于特定状态的业务进程的接口,例如用于确定处于空闲(idle)状态的云服务器的接口A2。
以业务服务器100是上述的游戏服务器为例,接口A2可以如下:
GET{gameapi_server}/XXX/…/providerServerIds?state=idle。
其中,“GET”为接口A2的类型,字符“{gameapi_server}/XXX/…/providerServerIds?state=idle”表示接口A2在游戏服务器中的路径。
游戏服务器调用接口A2,则可以获得云平台200中当前处于空闲状态的所有游戏进程的ID(例如,第一标识信息),当属于同一云服务器的游戏进程的状态均为空闲状态时,则可以确定该云服务器处于空闲状态。如此,可以确定云平台200中当前处于空闲状态的所有云服务器,并可以从中筛选出每种类型的云服务器的数量,例如,目标类型的云服务器的数量,即可得到第一数量。
类似地,还可以将上述接口A2中的“idle”替换为表示其他状态的字符,例如可以为替换为“all”,“all”表示各种状态的云服务器,对应地,通过调用该接口可以获得处于每种状态的云服务器的数量,及处于该种状态的所有云服务器的ID。示例性地,对于用于获取处于各种状态的云服务器ID的接口,调用该接口后,业务服务器100获得的返回数据可以包括:处于空闲状态的各云服务器的ID、处于运行状态的各云服务器的ID以及处于后文描述的其他状态的各云服务器的ID。
又比如,还可以将“idle”替换为:表示运行状态的字符running、表示配置状态的字符working以及表示后文描述的其他状态的字符等,本实施例对此没有限制。
S503,判断第一数量是否满足第一条件。若是,则执行S504;若否,则可以执行S505。
其中,第一条件为表示处于空闲状态的、目标类型的云服务器的数量不足的条件,可以通过数据统计或经验等灵活设定。一个例子中,第一条件可以是第一数量小于5;另一个例子中,处于空闲状态的、目标类型的云服务器以及处于运行状态的、目标类型的云服务器的总量为t,第一数量为t1,则第一条件可以是t1小于t的预设比例,预设比例比如可以是20%-50%,例如30%。
S504,调用云平台的云服务器创建接口,当云平台创建所述目标类型的云服务器后,在所述目标类型的云服务器中开启业务进程,将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给第一客户端。
本实施例中,如果第一数量满足第一条件,表示云平台200中处于空闲状态的、目标类型的云服务器的数量当前是不充足的,因此可以通过S504促使云平台200创建一个新的目标类型的云服务器,并在其中开启业务进程,从而得到第一客户端的业务场景服务器,并分配给第一客户端。其中,S504的详细实现过程与前一实施例中的S102类似,在此不再赘述。
S505,从所述云平台中选取一个处于空闲状态的、所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端。
考虑到创建一个云服务器,并开启业务进程通常需要花费一段时间,而第一数量不满足第一条件,表示云平台200中处于空闲状态的、目标类型的云服务器的数量当前是充足的,因此可以直接选取一个处于空闲状态、目标类型的云服务器分配给第一客户端,以节约给第一客户端分配业务场景服务器的时长,从而可以快速地为第一客户端配置好业务场景,进一步改善用户体验。
S506,接收第一客户端发送的业务场景信息,将所述业务场景信息配置于所述业务场景服务器中。
本实施例中,S506的详细实现过程与前一实施例中的S103类似,在此不再赘述。
通过上述设计,可以快速地为用户自动部署服务器,并自动地在服务器的业务进程中配置用户需要的业务场景信息,提升了业务场景信息配置的效率,丰富了业务场景的类型,改善了用户体验,增强了用户粘性。
请再次参照图5,在S504中,业务服务器100调用云服务器创建接口后,云平台通常是基于业务镜像文件来创建云服务器,该业务镜像文件包括云服务器运行所需的环境配置信息、操作系统及一些应用程序等。所述应用程序例如可以包括业务的服务端程序,运行该业务的服务端程序即可得到对应的业务进程。不同业务的服务端程序有所不同,因而,第一客户端发送的云服务器分配请求还可以包括业务标识。对应地,请参照图6,本实施例提供的服务器配置方法还可以包括在S504之前被执行的S507-S509。
S507,控制云平台获取与业务标识对应的业务镜像文件,所述业务镜像文件包括业务进程部署脚本,所述业务进程部署脚本包括待开启的业务进程的第二数量。
S508,判断目标类型对应的第三数量与第二数量是否不同。若是,则执行S509,若否,则执行S504。
本实施例中,与业务标识对应的业务镜像文件包括:该业务标识表征的业务的服务端程序,以及部署该业务的服务端程序的脚本(即,业务进程部署脚本)。业务进程部署脚本中设置有默认需要部署的业务的服务端程序的数量,即默认需要开启的业务进程的数量,即第二数量。而针对不同目标类型的云服务器,由于云服务器的性能配置不同,实际需要开启的业务进程的数量是不同的。业务服务器100可以存储有不同类型的云服务器与该类型的云服务器需要开启的业务进程的数量(即,后文描述的第三数量)的对应关系。
基于此,可以在调用云服务器创建接口,以基于业务标识对应的业务镜像文件创建云服务器之前,可以从获取的业务镜像文件的业务进程部署脚本中获取第二数量,根据云服务器分配请求中的目标类型查找到该目标类型对应的第三数量,再将获取的第二数量和查找到的第三数量进行比较。
如果获取的第二数量与查找到的第三数量相同,表示业务镜像文件的业务进程部署脚本中设置的第二数量与目标类型是匹配的,对应地,基于该业务镜像文件创建的云服务器通过执行存储的业务进程部署脚本而开启的业务进程的数量与其服务器类型匹配。因而,在此情况下,业务服务器100可以直接执行S504。
S509,控制所述云平台将所述业务镜像文件的所述业务进程部署脚本中的所述第二数量修改为所述第三数量。
如果获取的第二数量与查找到的第三数量不同,表示业务镜像文件的业务进程部署脚本中设置的第二数量与目标类型是不匹配的,对应地,基于该业务镜像文件创建的云服务器,通过执行存储的业务进程部署脚本,而开启的业务进程的数量与其服务器类型不匹配。因此,在此情况下,业务服务器100可以先通过S509将业务镜像文件的游戏进程部署脚本中的第二数量修改为与目标类型匹配的第三数量,然后,再执行S504。
基于S509,本实施例中,S504可以通过如下流程实现:
调用云服务器创建接口,使云平台基于修改后的业务镜像文件创建目标类型的云服务器;触发业务场景服务器执行修改后的业务进程部署脚本,开启第三数量个业务进程。
可以理解,业务进程部署脚本是存储于用以创建业务场景服务器的业务镜像文件的特定位置的,那么,基于业务镜像文件创建的业务场景服务器的特定位置也存在该业务进程部署脚本。业务服务器100可以访问业务场景服务器的该特定位置,并触发执行该特定位置处的脚本文件。通过执行该脚本文件,可以实现如下过程:根据业务镜像文件中的业务服务端程序依次建立第三数量个业务进程,并分别启动建立的每个业务进程。
本实施例中,基于图5所示流程将第一客户端发送的业务场景信息配置于第一客户端的业务场景服务器的业务进程中之后,第一客户端及其他的一些业务客户端可以与该业务进程连接,从而在该业务进程的业务场景中进行业务处理。基于此,请参照图7,本申请实施例提供的服务器配置方法还可以包括步骤S510-S512。其中,业务服务器100在执行S504之后执行S510,在执行S506之后执行S512。详细描述如下。
S510,记录业务场景服务器的每个业务进程的第一标识信息和该业务进程的第一通信地址的第一对应关系。
为便于描述,本实施例中,将业务进程的通信地址描述为第一通信地址,将云服务器的通信地址描述为第二通信地址。
云平台200会为创建的每个云服务器分配IP(Internet Protocol,互联网协议)地址,云服务器会为其中开启的每个进程分配端口号。对应地,通过进程的端口号以及进程所在的云服务器(例如,业务场景服务器)的IP地址,可以唯一地确定该进程。因此,业务进程的第一通信地址可以包括该业务进程的端口号和该业务进程所在的业务场景服务器的IP地址。
下面对获取业务进程的第一通信地址并记录第一对应关系的过程进行详细阐述。
实施过程中,云平台200响应业务服务器100调用云服务器创建接口而发出的新建请求,成功创建目标类型的云服务器之后,可以返回创建的云服务器的实例信息给业务服务器100。云服务器的实例信息可以包括云服务器的如下信息:第二标识信息、服务器类型(例如,表征目标类型的信息)、操作系统类型、在云平台200中的索引信息、系统磁盘类型、数据盘大下、支持的最大数据包的数量、带宽类型、支持的网络访问方式、所属的云区域、第二通信地址等。示例性地,第二通信地址通常可以是云服务器的IP地址。
此外,根据业务服务器100的配置的不同,在云平台200中创建的云服务器的功能有所不同,对应地,云平台200返回的云服务器的实例信息也有所不同。例如,在上述内容的基础上,云服务器的实例信息还可以包括:服务器收费模式、登录密码信息、安全组信息等。本实施例对此没有限制。
业务服务器100在创建的云服务器中开启业务进程之后,可以从云平台200获得开启的业务进程的端口号,可以生成业务进程的第一标识信息。
因此,业务服务器100可以通过云平台200返回的实例信息确定业务场景服务器的IP地址,并在开启游戏进程后从云平台200获得业务场景服务器的业务进程的端口号,从而得到业务场景服务器的业务进程的第一通信地址。然后,可以建立并存储获得的第一通信地址以及生成的第一标识信息之间的第一对应关系。
本实施例中,第一对应关系可以是一条数据记录,该数据记录包括一个业务进程的第一标识信息和该业务进程的第一通信地址。可选地,业务进程的第一对应关系还可以包括业务进程的用户数量、业务进程的状态信息等,其中,业务进程的用户数量是指业务进程当前连接的第二客户端的数量,业务进程的状态信息例如可以是表示空闲状态的信息、表示运行状态的信息等。
示例性地,Game-API可以维护有一数据库,所述第一对应关系可以由Game-API存储于该数据库中并进行维护。
S511,接收第二客户端发送的连接请求,连接请求包括业务场景服务器的一个业务进程的第一标识信息。
本实施例中,业务服务器100在将包括至少一个业务进程的云服务器分配给第一客户端作为业务场景服务器之后,任一用户可以通过其业务客户端搜索到该业务场景服务器的业务进程,例如,当进入任一业务客户端的特定界面(如,游戏客户端的游戏大厅界面)时,该特定界面上可以显示有该业务场景服务器的业务进程的第一标识信息或是包含该第一标识信息的标签。其中,可以搜索到第一客户端的业务场景服务器的业务进程的业务客户端,均可以视作本实施例中的第二客户端。特别地,第一客户端也可以在其特定界面上搜索到其业务场景服务器的业务进程,因此,第一客户端也可以视作第二客户端。
实际应用中,第二客户端可以响应用户在特定界面上针对第二标识信息或包含第二标识信息的标签的点击操作,生成包括第二标识信息的连接请求,并将该连接请求发送给业务服务器100。
S512,根据第一对应关系,确定与连接请求中的第一标识信息对应的第一通信地址,并将确定的第一通信地址发送给第二客户端,使第二客户端根据确定的第一通信地址与所述确定的第一通信地址对应的业务进程建立通信连接。
业务服务器100在接收到包括第二标识信息的连接请求时,可以以该第二标识信息为索引,从存储的第一对应关系中查找包括该第二标识信息的第一对应关系,并将查找到的第一对应关系中的第一通信地址发送给第二客户端,则第二客户端可以以自身的通信地址为源地址、以该第一通信地址为目的地址,建立与该目的地在对应的业务进程的通信连接。如此,第二客户端即可在所连接的业务进程的业务场景中进行业务处理。
通过上述设计,其他用户可以连接至第一客户端的业务场景服务器的业务进程,从而在该业务进程的业务场景中参与业务处理,换言之,一个用户可以在另一个用户的自定义业务场景下参与业务处理,增加了用户可使用的业务场景,丰富了业务场景的多样性,改善了用户体验。
下面以业务服务器100是上述的游戏服务器为例,给出一个具体例子,以对上述图5-7所示实施例的方案做进一步的阐述。请参照图8,其中,游戏服务器800包括相互通信的Core-Server(核心服务端)、Game-API(游戏接口单元)和API-Controller(接口控制器)。游戏服务器800已经请求云平台200创建了云服务器cvm-m2,cvm-m2包括游戏进程ins-m21、ins-m22。其中,Game-API记录的cvm-m2、ins-m21、ins-m22各自的状态均为空闲状态。
在图8所示场景中,游戏客户端C1可以通过如下流程请求分配云服务器,以用于部署沙盒游戏的游戏地图:
S001,游戏客户端C1响应用户U1的操作,向Game-API发送云服务器分配请求r1,r1包括表征目标类型的类型信息data1和沙盒游戏的业务标识g1。
其中,目标类型云服务器例如可以为上述的具有8G内存、4个处理核的云服务器。
S002,Game-API从r1中识别出data1,根据data1确定用户U1请求分配的云服务器的类型为目标类型。
S003,Game-API调用接口A2获取处于空闲状态的云服务器的数量,从中确定目标类型云服务器的数量,作为第一数量。
S004,Game-API判定第一数量小于5,则以data1和g1为参数,调用API-Controller中的接口A1。
S005,API-Controller调用接口A1中封装的云平台的新建实例API,向云平台发送包括data1和g1的新建请求r2。
S006,云平台从r2中识别出data1和g1,根据data1确定目标类型的云服务器需要开启的游戏进程的第三数量为2;根据g1查找对应的游戏进行文件img1,读取img1中的游戏进程部署脚本script-1,读取script-1中设置的待开启游戏进程的第二数量为1;判断第三数量和第二数量是否相同。
S007,云平台确定第三数量和第二数量的值不同,将img1的游戏进程部署脚本中的第二数量的值修改为2,得到修改后的script-1’和img1’。
S008,云平台基于img1’创建第二类型的云服务器cvm-m1。
S009,云平台将cvm-m1的实例信息返回给API-Controller。
S010,API-Controller触发cvm-m1执行script-1’,在cvm-m1中开启2个游戏进程ins-m11和ins-m12。
S011,API-Controller将ins-m11和ins-m12各自的实例信息返回给Game-API。
S012,Game-API将cvm-m1作为游戏客户端C1的业务场景服务器,在数据库中记录cvm-m1的标识信息、通信地址IP-m1、状态信息state-m1的第一对应关系co-m1,记录ins-m11的标识信息、通信地址IP-m11、状态信息state-m11的第二对应关系co-m11,记录ins-m12的标识信息、通信地址IP-m12、状态信息state-m12的第二对应关系co-m12,将对应关系co-m1、co-m11、co-m12与U1绑定,将state-m1、state-m11、state-m12三者的值均设置为idle(空闲状态)。
S013,Game-API将cvm-m1、ins-m11、ins-m12的标识信息发送给游戏客户端C1。
S014,游戏客户端C1针对cvm-m1发送游戏地图map1给Core-Server。
S015,Core-Server将map1存储于云平台200的存储装置Core-Storage中,并将map1和cvm-m1关联。
S016,Game-API将state-m1、state-m11、state-m12三者的值均更新为working(配置状态)。
S017,cvm-m1从Core-Storage获取map1并配置于ins-m11和ins-m12中。
S018,Game-API将state-m1、state-m11、state-m12三者的值均更新为running(运行状态)。
S019,游戏客户端C1向Game-API发送包括ins-m11的标识信息的连接请求r3。
S020,Game-API根据r3中的标识信息查找ins-m11的IP地址和端口号并发送给游戏客户端C1。
S021,游戏客户端C1发送以ins-m11的IP地址为目的IP地址、以ins-m11的端口号为目的端口号的连接请求r4,连接请求r4将被发送给ins-m11,从而建立与ins-m11的通信连接。
S022,游戏客户端C2响应用户U2的操作,建立与ins-m11的通信连接。
其中,游戏客户端C2建立与ins-m11之间的通信连接的过程与上述的S019-S021类似,在此不再赘述。
基于上述流程,可以自动地为用户U1部署服务器,供用户U1部署其自定义的游戏业务g1的游戏地图map1,并且可供其他用户例如U2在游戏地图map1中参与游戏。
实际使用中,第一客户端在获得业务场景服务器之后,其业务场景服务器的业务进程通常不是一直有用户进行业务处理,第一客户端对应的用户通常也不会一直处于登录业务场景服务器的状态。换句话说,业务场景服务器及业务场景服务器中的业务进程并非一直处于被使用的状态,当业务场景服务器及其中的业务进程长时间不被使用时,可能导致服务器资源的浪费。
鉴于这一问题,请参照图9,本申请实施例提供的服务器配置方法还可以包括S513-S518,其中,S513可以在S504之后执行,S514-S518可以在S506之后执行。
S513,记录业务场景服务器的第二标识信息和所述业务场景服务器的第二通信地址的第二对应关系。
可选地,针对业务服务器100在云平台200中请求创建的每个云服务器,业务服务器100的Game-API可以在确定该云服务器被成功创建时,记录该云服务器的第二对应关系,第二对应关系可以是包括云服务器的第二通信地址和第二标识信息的一条数据记录。其中,第二通信地址和第二标识信息可以从云平台200在成功创建云服务器后返回的实例信息中获得。此外,第二对应关系还可以包括其他信息,例如还可以包括云服务器的实例信息中的其他部分信息,如登录密码信息、所属云区域等,本实施例对此没有限制。又如,第二对应关系还可以包括云服务器的状态信息。
可以理解,业务场景服务器是分配给第一客户端的云服务器,因此,业务场景服务器也具有第二对应关系。
S514,将业务进程的状态更新为运行状态,将业务场景服务器的状态更新为运行状态。
实施过程中,业务服务器100在将第一客户端发送的业务场景信息配置于第一客户端的业务场景服务器的业务进程之后,业务场景服务器即被第一客户端对应的用户使用。此时,业务服务器100的Game-API可以在业务场景服务器的每个业务进程的第一对应关系中,将该业务进程的状态更新为运行状态。
可以理解,业务服务器100还可以在业务进程的状态满足其他更新条件时,在业务进程的第一对应关系中对业务进程的状态信息进行更新,本实施例对此没有限制。
实施时,在将业务场景服务器的业务进程的状态更新为运行状态后,业务服务器100的Game-API可以在业务场景服务器的第二对应关系中,将业务场景服务器的状态也更新为运行状态,以表征该业务场景服务器已被用户占用,从而避免业务服务器100将该业务场景服务器分配给其他用户。当然,业务服务器100的Game-API还可以在业务场景服务器的状态满足其他更新条件时,在业务场景服务器的第二对应关系中对业务场景服务器的状态信息进行更新,本实施例不以此为限制。
基于上述的S514,云平台200中处于运行状态的云服务器均为分配给某一第一客户端的业务场景服务器。
S515,监控业务场景服务器是否与第一客户端连接。
S516,监控业务场景服务器的每个业务进程连接的第二客户端的数量。
实施过程中,针对每个业务场景服务器,即,针对云平台200中每个处于运行状态的云服务器,业务服务器100可以按照第一时间间隔检测该业务场景服务器当前是否与分配到该业务场景服务器的业务客户端建立有通信连接。
对于业务场景服务器中的每个业务进程,业务服务器100可以按照第二时间间隔检测该业务进程当前连接的第二客户端的数量,检测到的数量即为该业务进程当前的用户数量。可选地,业务服务器100可以在每次检测到一业务进程的用户数量时,在该业务进程的第一对应关系中更新该业务进程的用户数量。
示例性地,本实施例中,业务服务器100可以设置有用于获取特定游戏进程的相关信息的接口A3,所述相关信息例如可以包括状态信息、用户数量等。以上述的游戏服务器为例,接口A3例如可以为:
GET{gameapi_server}/XXX/…/info?providerServerId=ins-62b6z9j6。
其中,“GET”表示接口A3的类型,字符“{gameapi_server}/XXXX/…/info?providerServerId=ins-62b6z9j6”表示接口A3在游戏服务器中的路径,“ins-62b6z9j6”表示需要获取信息的云服务器的ID(如,第二标识信息)。通过调用接口A3,可以得到以“ins-62b6z9j6”为第二标识信息的游戏进程当前的状态信息(例如可以为运行状态)以及当前的玩家数量。
可选地,上述的第一时间间隔和第二时间间隔可以灵活设定,两者可以相同,比如皆可以为10-15分钟,如12分钟。两者也可以不同,比如第一时间间隔可以为15分钟,第二时间间隔为12分钟,本实施例对此没有限制。
可以理解,本实施例对S515和S516的执行顺序没有限制,两者可以并行执行,也可以按照任意顺序先后执行。
S517,若业务场景服务器的任一业务进程连接的第二客户端的数量为0,则在云平台中保存该业务进程中配置的业务场景信息,从该业务进程中删除配置的业务场景信息,并将该业务进程的状态记录为空闲状态。
其中,当任一业务进程连接第二客户端的数量为0时,表示该业务进程中当前的用户数量为0,则将删除该业务进程中的业务场景信息,以将该业务进程释放出来供其他用户进行业务场景信息的配置。但考虑到后续还可能有用户需要使用这一业务场景信息,因此可以在删除业务进程中配置的业务场景信息之前,在云平台200中保存该业务场景信息。
值得说明的是,对于一个业务场景服务器包括多个业务进程的情况,多个业务进程中配置的业务场景信息通常是相同的,此时,可以只保存一份业务场景信息,以节约存储空间。而对于多个业务进程中配置的业务场景信息不全相同的情况,则可以分别保存业务场景信息和业务进程的第一标识信息的对应关系。
示例性地,云平台200的存储装置例如可以为Core-Storage,在此情况下,业务服务器100可以向云平台200的Core-Storage发送存储请求,存储请求可以包括待存储的业务场景信息所在的业务进程的第一标识信息。Core-Storage接收该存储请求,根据存储请求中的第一标识信息从该第一标识信息表征的业务进程中获取业务场景信息,并将获取的业务场景信息保存。如果保存成功,则返回一保存成功的响应信息给业务服务器100,若保存失败,则返回一保存失败的响应信息给业务服务器100。
业务服务器100接收到针对存储请求的响应信息时,识别该响应信息,若该响应信息指示保存成功,则控制云平台200从与存储请求中的第一标识信息对应的业务进程中删除业务场景信息,并在该业务进程的第一对应关系中将该业务进程的状态信息更新为空闲状态。若该响应信息指示保存失败,则可以将待存储的业务场景信息保存在其所处的业务场景服务器的本地磁盘中,并在一定时间间隔(例如,上述的第二时间间隔)之后再次针对该待存储的业务场景信息发送存储请求给云平台200中的Core-Storage。
可选地,业务服务器100也可以在连续多次(例如,3-5次,如4次)检测到某一业务进程连接的第二客户端的数量为0时,再执行S518,以降低检测错误的概率。
S518,若业务场景服务器的每个业务进程的状态均为空闲状态,且业务场景服务器没有与第一客户端连接,则将业务场景服务器的状态更新为空闲状态。
本实施例中,业务服务器100如果检测到属于同一业务场景服务器的多个业务进程均为空闲状态,则可以确定该业务场景服务器中的业务进程均没有用户参与。进一步地,如果此时分配到该业务场景服务器的用户的第一客户端也没有与业务场景服务器连接,表示分配到该业务场景服务器的用户当前也没有使用该业务场景服务器。在此情况下,可以将业务场景服务器的第二对应关系中的状态信息更新为空闲状态,从而将业务场景服务器的资源提供给其他用户使用。
可选地,为了降低错误概率,可以在连续多次检测到业务场景服务器的每个业务进程的状态均为空闲状态,且业务场景服务器没有与第一客户端连接时,再将业务场景服务器的状态更新为空闲状态。
此外,业务服务器100还可以对各个云服务器的分配时长进行监控,当分配给任一第一客户端的云服务器达到对应的分配时长时,可以删除该云服务器的业务进程中配置的业务场景信息,并将该云服务器及其中的业务进程的状态均设置为空闲状态,从而可以将该云服务器分配给其他业务客户端,或是可以在后续触发缩容条件时,将该云服务器删除。
参照上文关于图5所示实施例的描述,在接收到第一客户端发送的云服务器分配请求时,如果可以直接将处于空闲状态的、目标类型的云服务器分配给第一客户端,而非即时新建一个云服务器并开启业务进程,可以大大节约分配云服务器的时间,改善用户体验。因而,通过图8所示流程,可以将当前没有被用户使用的业务场景服务器设置为空闲状态,从而可以在接收到其他业务客户端的云服务器分配请求时,可以将该业务场景服务器作为处于空闲状态的云服务器分配给其他业务客户端,实现服务器资源复用,减少资源浪费。
进一步地,在将某一业务场景服务器设置为空闲状态之后,若原本分配到该业务场景服务器的第一客户端再次请求访问或登录该业务场景服务器,则可以通过图10所示流程进行处理,详细描述如下。
S519,若接收到第一客户端发送的包括第二标识信息的连接请求,则从云平台包括的目标类型的云服务器中,选取一个处于空闲状态的云服务器作为第一客户端的新的业务场景服务器。
其中,业务服务器100可以在执行S518之后执行S519。S519中,第一客户端是指原本分配到所述业务场景服务器的业务客户端,目标类型是第一客户端分配到的云服务器的类型,第二标识信息是第一客户端分配到的云服务器的标识信息。在分配给第一客户端的业务场景服务器没有到期,而该业务场景服务器的状态被设置为空闲状态的情况下,如果业务服务器100接收到第一客户端发送的连接请求,且该连接请求包括第二标识信息,表示第一客户端需要访问其分配到的云服务器,此时,可以重新分配一个处于空闲状态的、第一客户端所需类型(目标类型)的云服务器给该第一客户端,即重新分配一个已经开启游戏进程的、没有配置业务场景信息的、目标类型的云服务器给该第一客户端。
S520,将保存的与第二标识信息关联的业务场景信息配置于新的业务场景服务器的业务进程中。
本实施例中,业务服务器100在将业务场景服务器的业务进程的状态设置为空闲状态之前,保存的该业务进程中配置的业务场景信息与该业务进程所处的业务场景服务器的第二标识信息关联。对应地,业务服务器100可以根据接收的连接请求中的第二标识信息,从保存的业务场景信息中查找与该第二标识信息关联的业务场景信息,查找到的业务场景信息即为第一客户端配置于其分配到的云服务器的业务进程中的业务场景信息,因而,可以将查找到的业务场景信息配置于第一客户端的新的业务场景服务器中。
S521,在第二对应关系中将第二通信地址更新为新的业务场景服务器的通信地址,记录新的业务场景服务器的业务进程的第一对应关系。
本实施例中,为了确保后续各个游戏客户端可以正常地访问新的业务场景服务器及其中的业务进程,可以在第一客户端的业务场景服务器的第二对应关系中,将第二通信地址更新为第一客户端的新的业务场景服务器的通信地址。以及,针对第一客户端的新的业务场景服务器的每个业务进程,建立包括该业务进程的第一标识信息和第一通信地址的第一对应关系,详细实现过程可以参照前文对S510的详细描述,在此不再赘述。
请再次参照图8所示的游戏业务场景,下面基于该场景中的例子,对上述图9-图10所示实施例的方案做进一步的阐述。
假设一段时间后,用户U1和U2均退出ins-m11,即断开与ins-m11的连接,则ins-m11的玩家数量为0,此外,假设ins-m12的玩家数量也为0。在此情况下,本实施例提供的服务器配置方法例如还可以包括以下流程:
S023,Game-API在15分钟内多次检测到ins-m11和ins-m12各自的玩家数量均为0,且游戏客户端C1没有与cvm-m1通信连接,则将ins-m11中配置的游戏地图map1和cvm-m1关联并保存,将对应关系co-m1、co-m11、co-m12与用户U1解除绑定,将state-m1、state-m11、state-m12三者的值均更新为idle。
S024,游戏客户端C2响应用户U2的操作,向Game-API发送云服务器分配请求r5,r5包括表征data1和沙盒游戏的业务标识g1。
S025,Game-API接收r5,从中识别出data1,根据data1确定U2需要分配的服务器的类型为第二类型。
S026,Game-API确定处于空闲状态的云服务器的第一数量,判定第一数量不小于5,则选择一个处于空闲状态的第二类型云服务器cvm-m1,作为游戏客户端C2的业务场景服务器,将cvm-m1、ins-m11、ins-m12各自的实例信息返回给API-Controller。
S027,API-Controller将接收的实例信息发送给Game-API。
S028,Game-API将对应关系co-m1、co-m11、co-m12与用户U2绑定,将状态信息state-m1、state-m11、state-m12三者的值均更新为运行状态,将cvm-m1、ins-m11、ins-m12的标识信息发送给游戏客户端C2。
S029,游戏客户端C2响应用户U2的操作,将用户U2输入的游戏地图map2发送给游戏服务器800。
S030,游戏服务器800将map2配置于cvm-m1的ins-m11、ins-m12中。
其中,map2的配置过程与上述的S014-S017类似,在此不再赘述。
S031,游戏客户端C2响应用户U2的操作,建立与ins-m12的通信连接。
S032,Game-API接收游戏客户端C1的连接请求r6,r6包括cvm-m1的标识信息,从当前处于空闲状态的第二类型云服务器中选取cvm-m2作为游戏客户端C1的业务场景服务器,将保存的与cvm-m1的标识信息对应的游戏地图map1配置于cvm-m2的游戏进程ins-m21、ins-m22中。
S033,Game-API记录cvm-m2的标识信息、通信地址IP-m2、状态信息state-m2的第一对应关系co-m2,ins-m21的标识信息、通信地址IP-m21、状态信息state-m21的第二对应关系co-m21,ins-m22的标识信息、通信地址IP-m22、状态信息state-m22的第二对应关系co-m22。
S034,Game-API将对应关系co-m2、co-m21、co-m22与用户U1绑定,将状态信息state-m2、state-m21、state-m22三者的值均更新为running。
请再次参照图1所示场景,本实施例中,为了进一步提升配置业务场景的效率,可以对云平台200中处于空闲状态的每种类型的云服务器的数量进行监控,从而在处于空闲状态的、任意一种类型的云服务器数量不足时,进行扩容。如此,当任一业务客户端请求分配某一类型的云服务器时,可以直接将处于空闲状态的该种类型的云服务器分配给该业务客户端,节约创建云服务器和在云服务器中开启游戏进程的时间,从而提高效率。
有鉴于此,本实施例提供的服务器配置方法还可以包括图11所示的步骤,详细描述如下。
S522,针对云平台中的每种类型的云服务器,监控处于空闲状态的、该种类型的云服务器的数量。
可以理解,S522与前述的步骤没有执行顺序上的严格限制。
实施过程中,业务服务器100可以周期性地获取云平台200中处于空闲状态的、每种类型的云服务器的数量。示例性地,假设具有4G内存、2个处理核的云服务器为第一类型的云服务器,具有8G内存、4个处理核的云服务器为第二类型的云服务器。那么,业务服务器100可以每间隔一段时间(例如,可以是3-5分钟,比如4分钟)获取一次处于空闲状态的第一类型的云服务器的数量,获取一次处于空闲状态的第二类型的云服务器的数量。
本实施例中,业务服务器100可以调用上文描述的接口A2,以确定云平台200中处于空闲状态的所有云服务器ID,并从中筛选出每种类型的云服务器的数量。
S523,若监控到处于空闲状态的、该种类型的云服务器的数量满足第一条件,则调用云平台的云服务器创建接口,当云平台创建至少一个该种类型的云服务器后,在创建的该种类型的云服务器中开启至少一个业务进程,并将创建的该种类型的云服务器的状态记录为空闲状态。
如上所述,本实施例中,针对任一云服务器类型设置的第一条件,为表示该类型的云服务器数量不足的条件。针对不同云服务器类型设置的第一条件可以不同,也可以相。例如均可以和上述目标类型对应的第一条件相同,在此情况下,以X1类型为例,针对X1类型设置的第一条件可以为:处于空闲状态的X1类型云服务器的数量小于5;或者,处于空闲状态的X1类型云服务器的数量,在处于空闲状态或运行状态的X1类型云服务器的总量中所占的比例,小于30%。
如果处于空闲状态的X1类型云服务器的数量满足第一条件,表示云平台200中处于空闲状态得到X1类型云服务器的数量当前是不充足的,则可以通过S523对X1类型的云服务器进行扩容,即在云平台200中增加至少一个X1类型云服务器。在增加的X1类型云服务器中开启业务进程后,该业务进程会周期性地向业务服务器100发送心跳信息,业务服务器100在首次收到增加的X1类型云服务器中的业务进程发送的心跳信息时,将X1类型云服务器及其中的业务进程的状态设置为空闲状态。
本实施例中,在基于预存的业务镜像文件创建X1类型云服务器之前,可以参照上述的S507-S509,对预存的业务镜像文件的业务进程部署脚本中的第二数量进行处理。
对于需要扩容的X1类型云服务器,需要增加的X1型云服务器的数量可以灵活设定。示例性地,可以将处于空闲状态的X1类型云服务器的数量既不满足第一条件,也不满足第二条件,作为扩容目标。比如,扩容目标可以为:云平台200中处于空闲状态的X1类型云服务器的数量为5;或者,云平台200中处于空闲状态的X1类型云服务器,在处于空闲状态或运行状态的云服务器中占据的比例为30%。基于扩容目标,及云平台200中处于空闲状态的X1类型云服务器的当前数量,可以确定需要增加的X1类型云服务器的数量。
扩容过程中,增加每一个X1类型云服务器的过程,与前文描述的创建云服务器并开启业务进程的过程类似,具体可以参照对S102和S103、S504和S506的相关描述,在此不再赘述。
下面参照图12,以上述包括Game-API和API-Controller的游戏服务器800为例,详细描述游戏服务器800对X1类型云服务器的扩容过程。
1、API-Controller(接口控制器)每隔5分钟从Game-API获取处于空闲状态的X1类型云服务器的第一标识信息、处于运行状态的X1类型云服务器的第一标识信息。
2、API-Controller确定处于空闲状态的X1类型云服务器的数量t1,以及处于运行状态的X1类型云服务器的数量t2,计算t1和t2之和T0。
3、若t1小于T0的30%,API-Controller对X1类型云服务器进行扩容。
4、API-Controller调用接口A1中的新建实例API,在云平台200中创建X1类型云服务器,并在X1类型云服务器中开启游戏进程。
5、Game-API(游戏接口单元)将X1类型云服务器的状态记录为空闲状态,使得扩容后处于空闲状态的X1类型云服务器的数量为t1’,且t1’不小于t1’与t2之和T0’的30%。
6、Game-API在接收到创建的X1类型云服务器中的游戏进程发送的心跳信息时,将创建的X1类型云服务器及其中的游戏进程的状态设置为空闲状态。
S524,若监控到处于空闲状态的、该种类型的云服务器的数量满足第二条件,则调用所述云平台的云服务器回收接口,在所述云平台中删除至少一个该种类型的云服务器,至少一个该种类型的云服务器包括处于空闲状态的该种类型的云服务器或者处于故障状态的该种类型的云服务器。
实际应用中,如果云平台200中处于空闲状态的某一类型(如,X2类型)云服务器的数量过多,这些处于空闲状态的X2类型云服务器中,可能存在部分云服务器难以被分配出去,导致资源浪费。基于此,可以在云平台200中处于空闲状态的X2类型云服务器的数量过多时,对其进行缩容,即减少至少一个X2类型云服务器。
其中,针对任一云服务器类型设置的第二条件,是表示处于空闲状态的、该类型云服务器的数量过多的条件。针对不同类型设置的第二条件可以相同,也可以不同。例如,以X2类型为例,针对X2类型设置的第二条件可以是:云平台200中处于空闲状态的X2类型云服务器的数量大于5;或者,云平台200中处于空闲状态的X2类型云服务器的数量,在云平台200中处于空闲状态或运行状态的X2类型云服务器的总量中占据的比例大于30%。可以理解,前述的5和30%仅为示例,可以根据需要灵活设定,本实施例对此没有限制。
对于需要缩容的X2类型云服务器,需要减少的X2类型云服务器的数量可以灵活设定。一个例子中,可以将缩容目标设置为:处于空闲状态的X2类型云服务器的数量既不满足第一条件,也不满足第二条件。比如,缩容目标可以为:处于空闲状态的X2类型云服务器的数量为5,或者,处于空闲状态的X2类型云服务器在处于空闲状态或运行状态的X2类型云服务器中占据的比例为30%。其中,前述的5和30%仅为示例,本实施例不以此为限制。
在确定需要对X2类型云服务器缩容时,需要删除的X2类型云服务器的具体数量可以根据缩容目标以及处于空闲状态的X2类型云服务器的当前数量确定,比如确定的需要删除的X2类型云服务器为m,m为大于或等于1的整数。业务服务器100可以从当前处于空闲状态或处于故障状态的X2类型云服务器中选择m个X2类型云服务器,选择过程,可以优先选择处于故障状态的X2类型云服务器,然后再选择处于空闲状态的X2类型云服务器。然后,业务服务器100可以调用云平台200的云服务器回收接口,将选择的m个X2类型云服务器删除。
本实施例中,云服务器创建接口例如可以是云平台200的回收实例API,以上述包括Game-API和API-Controller的游戏服务器为例,回收实例API可以封装于API-Controller中,例如可以封装于API-Controller的如下接口A4中:
POST http://{apiController_server}/YYY/…/deallocate。
其中,POST为接口A4的类型,字符“http://{apiController_server}/XX XX/…/deallocate”为接口A4在游戏服务器中的路径,“deallocate”为接口名称。
下面参照图13,以上述的游戏服务器800为例详细阐述对X2类型云服务器的缩容过程:
7、API-Controller每隔5分钟从Game-API获取处于空闲状态的X2类型云服务器的第一标识信息、处于运行状态的X2类型云服务器的第一标识信息。
8、API-Controller确定处于空闲状态的X2类型云服务器的数量t3,以及处于运行状态的X2类型云服务器的数量t4,计算t3和t4之和T1。
9、若t3大于T1的30%,API-Controller对X2类型云服务器进行缩容。
10、Game-API调用API-Controller中的接口A4,接口A4的请求体包括m个X2类型云服务器的第二标识信息。
11、API-Controller调用接口A4中封装的回收实例API,即云服务器回收接口,删除m个X2类型云服务器。
API-Controller在调用云服务器回收接口删除之后,可以从云平台200中查询需要删除的m个X2类型云服务器,若查询不到,则确定已成功删除所述m个X2类型云服务器。
12、API-Controller将被删除的m个X2类型云服务器的实例信息发送给Game-API。
Game-API中可以设置有用于将云平台200中被删除的云服务器的相关信息删除的接口A5,其中,该相关信息例如可以是被删除的云服务器的第一对应关系,及被删除的云服务器中游戏进程的第二对应关系。
接口A5例如可以为:POST{gameapi_server}/XXX/…/decommission。其中,POST为接口A5的类型,字符“{gameapi_server}/XXX/…/decommission”为接口A5在游戏服务器中的路径,“decommission”为接口名称。其中,接口A5可以具有一请求头和请求体,其中,请求体可以包括需要删除或销毁相关信息的云服务器的第一标识信息,游戏服务器可以采用目标加密算法,根据目标秘钥信息对请求体中的数据进行加密(又称“签名”),得到一加密信息,接口A5的请求头可以包括所述加密信息。其中,目标加密算法例如可以是MD5(Message-Digest Algorithm 5,信息摘要算法5)、非对称加密算法、DES(Data EncryptionStandard,数据加密标准)算法等。当然,目标加密算法还可以是其他算法,本实施例对此没有限制。
13、Game-API调用接口A5,接口A5的请求体包括m个X2类型云服务器的第一标识信息,将m个X2类型云服务器的第一对应关系及其中的游戏进程的第二对应关系删除。
上述步骤S524中,故障状态可以分为多种,比如可以分为第一故障状态和第二故障状态。请参照图14,本实施例提供的服务器配置方法还可以包括图13所示的S525-S529,以确定云服务器是否处于故障状态,及所处的故障状态的类型。详细描述如下。
S525,针对云平台包括的每个云服务器,每间隔目标时长检测是否接收到该云服务器的业务进程上报的心跳信息。
本实施例中,业务服务器100通过调用云服务器创建接口在云平台200中创建云服务器,并在该云服务器中开启业务进程之后,开启的业务进程可以以该目标时长为间隔向业务服务器100的业务接口单元上报心跳信息。其中,目标时长可以灵活设定,例如可以是100-150秒之间的任意值,比如可以为120秒。
S526,若连续目标次数没有收到该云服务器的业务进程上报的心跳信息,则将该云服务器的状态更新为第一故障状态,并检测该云服务器中的业务进程是否故障,以及调用云平台的检测接口,检测该云服务器是否故障。
示例性地,对于游戏业务场景下的一个云服务器,例如包括一个游戏进程ins-11的云服务器CVM1,如果游戏服务器的Game-API接收到CVM1中的游戏进程ins-11发送的心跳信息,表示CVM1和ins-11均是正常的。如果Game-API没有接收到ins-11发送的心跳信息,表示CVM1或者ins-11可能是有故障的。
为了避免因网络问题等导致的误判,Game-API可以在连续目标次数(比如,3-5次,例如3次)没有接收到ins-11发送的心跳信息时,确定CVM1或者ins-11存在故障,此时,可以在ins-11的第一对应关系中将ins-11的状态更新为第一故障状态,在CVM1的第二对应关系中,将CVM1的状态更新为第一故障状态,并可以请求API-Controller分别对ins-11和CVM1进行检测。其中,第一故障状态例如可以用字符“issue”表示。
值得说明的是,本实施例中,第一故障状态表示的是CVM1可能处于故障状态。
S527,若检测到该云服务器和该云服务器中的业务进程均没有故障,则在接收到该云服务器中的业务进程发送的心跳信息时,将该云服务器的状态更新为空闲状态或运行状态。
S528,若检测到该云服务器没有故障,且该云服务器中的业务进程故障,则重启故障的业务进程,当在重启所述故障的业务进程后接收到所述故障的业务进程上报的心跳信息时,将该云服务器的状态更新为空闲状态或运行状态。
S529,若检测到该云服务器故障,则将该云服务器的状态更新为第二故障状态。
下面仍以上述的游戏业务场景下云服务器CVM1中的游戏进程ins-11为例,对上述的S526-S529详细描述如下:
一、Game-API周期性地检测是否收到ins-11发送的心跳信息。其中,检测周期为上述的目标时长。
二、Game-API连续3次没有收到ins-11发送的心跳信息,将ins-11的状态更新为第一故障状态,将CVM1的状态更新为第一故障状态,并请求API-Controller分别对ins-11和CVM1进行检测。
三、API-Controller触发CVM1执行检测脚本,以对ins-11进行检测;调用云平台200的状态获取API,获取CVM1的状态,以对CVM1进行检测。
其中,该检测脚本例如可以用于实现特定功能的脚本,根据该检测脚本的执行结果是否符合预期,可以确定ins-11是否故障。
四、API-Controller获得云平台200返回的ins-11和CVM1的检测结果。
五、API-Controller将ins-11和CVM1的检测结果返回给Game-API。
六、若ins-11和CVM1均没有故障,Game-API可以在后续接收到ins-11发送的心跳信息时,根据ins-11的玩家数量将ins-11的状态更新为空闲状态或运行状态,将CVM1的状态更新为与ins-11相同的状态。
详细地,如果ins-11的玩家数量为0,则可以将ins-11的状态更新为空闲状态,将CVM1的状态更新为空闲状态;如果ins-11的玩家数量不为0,则可以将ins-11的状态更新为运行状态,将CVM1的状态更新为运行状态。
如果Game-API后续过程中没有收到ins-11发送的心跳信息,则不对ins-11的状态进行调整,即ins-11的状态保持为第一故障状态。对应地,CVM1的状态也保持为第一故障状态。
七、若ins-11故障,且CVM1没有故障,Game-API可以触发CVM1重启ins-11。
八、触发重启ins-11后,Game-API若接收到ins-11发送的心跳信息,则根据ins-11的当前玩家数量将ins-11的状态更新为空闲状态或运行状态,并将CVM1的状态更新为与ins-11相同的状态。详细实现过程与步骤六类似,在此不再赘述。
对应地,如果重启ins-11后没有收到ins-11发送的心跳信息,则ins-11的状态保持为第一故障状态。
九、若CVM1故障,Game-API可以将CVM1的状态更新为第二故障状态,将ins-11的状态更新为第二故障状态。
其中,CVM1故障的情况包括两种情形,一种是CVM1故障,而ins-11没有故障;能够一直是CVM1故障,且ins-11故障。第二故障状态表征的是需要被删除的状态,例如可以采用字符“need delete”或“need to be decommission”表示。
通过图14所示实施例,可以比较准确地确定用于配置游戏场景的云服务器是否发生故障,从而为后续的故障处理提供依据。
可选地,在确定云服务器是否处于故障状态及所处的故障状态的类型之后,本实施例还可以包括如下步骤十至十二,以进行故障处理。
十、将处于所述第二故障状态的云服务器所处的云区域,确定为第一区域。
十一、将处于所述第二故障状态的云服务器的数据,迁移至所述第一区域中的其他云服务器中。
十二、调用云平台200的云服务器回收接口,删除处于第二故障状态的云服务器。
其中,处于第二故障状态的云服务器是云服务器本身发生了故障,可以对其数据进行迁移。
此外,根据地理位置的不同,可以将云平台200中的云服务器划分至不同的区域,每个区域可以称为一个云区域。实际应用中,根据用户所处的地理位置,可以在距离用户比较近的云区域内的云服务器上,部署用户所需的服务,从而可以提高用户获取服务的速度。因此,在对处于第二故障状态的云服务器进行数据迁移时,可以首先将处于第二故障状态的云服务器的数据迁移至该云服务器所处的同一云区域中的其他云服务器。
详细地,业务服务器100可以封装有用于实现数据迁移的接口,例如可以封装于业务接口单元中。以业务服务器100是上述的游戏服务器为例,接口A6可以为:
POST{gameapi_server}/XXX/…/migrate。
其中,“POST”表示接口类型,字符“{gameapi_server}/XXX/…/migrate”表示接口A6在游戏服务器中的路径。接口A6可以包括一请求体和请求头,请求体可以包括需要迁移的云服务器的第二标识信息,请求头可以包括采用目标加密算法,基于目标秘钥信息对请求头的数据加密得到的加密信息。游戏服务器通过调用接口A6,可以实现对指定云服务器的数据迁移。
进一步地,对于处于第一故障状态的云服务器,它们的业务进程没有发送心跳信息,但云服务器本身没有故障,这种情况可能是云服务器所处云区域的网络发生了故障。基于此,本实施例提供的服务器配置方法还可以包括故障处理步骤十三至十四。
十三、若处于第一故障状态的云服务器的数量达到目标数量,则将处于第一故障状态的云服务器所处的云区域确定为第二区域,检测所述第二区域是否存在网络故障。
十四、若第二区域存在网络故障,则将第二区域中的云服务器的数据迁移至其他云区域中的云服务器,并调用所述云平台的云服务器回收接口,删除所述第二区域中的云服务器。
其中,目标数量可以根据统计数据或经验进行设置,比如可以为50-100,例如可以为80。第二区域是指处于第一故障状态的云服务器所属的云区域。
实施过程中,业务服务器100对第二区域的网络状况进行检测的方式例如可以为:
Game-API向指定通信地址(例如运维人员的通讯终端的通信地址)发送提示信息,该提示信息用于提示运维人员对第二区域的网络状况进行检测,并接收来自该指定通信地址的反馈信息。所述反馈信息可以是运维人员输入的网络状况检测结果,若所述反馈信息指示第二区域存在网络故障,则可以将第二区域中的云服务器的数据迁移到其他区域的云服务器中;若所述反馈信息指示第二区域没有网络故障,则可以不对第二区域中的云服务器进行处理。
其中,对第二区域中的云服务器的数据进行迁移的方式,与上述对第一区域中的云服务器的数据的迁移方式类似,在此不再赘述。
通过上述故障处理步骤,可以及时处理云服务器存在的故障,改善用户体验。
本实施例中,用户可以对不同业务的业务镜像文件进行更新。请参照图14,本实施例提供的服务器配置方法还可以包括图15所示的步骤,以用于实现对业务镜像文件的更新。
S530,接收与目标业务标识对应的新版本业务镜像文件,将云平台中当前存储的与目标业务标识对应的业务镜像文件替换为新版本业务镜像文件。
实施过程中,运维人员可以在业务服务器100选择需要更新的业务,所述需要更新的业务的标识即为目标业务标识。然后,再上传针对该需要更新的业务的新版本业务镜像文件。业务服务器100接收到与目标业务标识对应的新版本业务镜像文件时,可以根据所述目标业务标识从云平台200中查找对应的业务镜像文件,再将查找到的业务镜像文件替换为接收到的新版本业务镜像文件。
S531,查找云平台中基于目标业务标识对应的业务镜像文件创建的每个云服务器,作为第一云服务器。
其中,第一云服务器是指基于需要更新的业务镜像文件创建的云服务器,即基于旧版本的业务镜像文件创建的云服务器。
参照前文的描述,第一客户端发送的云服务器分配请求包括业务标识,对应地,基于该云服务器分配请求分配到的云服务器的实例信息也可以包括该业务标识。因此,业务服务器100可以以目标业务标识为索引,查找实例信息包括目标业务标识的云服务器,查找到的云服务器即为第一云服务器。
S532,针对每个第一云服务器,在该第一云服务器处于空闲状态时,保存该第一云服务器中的数据,将该第一云服务器的状态更新为第二故障状态,并基于新版本业务镜像文件创建云服务器作为第二云服务器,将保存的该第一云服务器中的数据配置于第二云服务器中。
为了避免影响用户使用,可以在第一云服务器处于空闲状态,即第一云服务器中的业务进程没有与任何第二客户端连接时,将第一云服务器中的数据与目标游戏业务标识关联并保存。然后,将第一云服务器的状态更新为第二故障状态,则后续触发缩容条件时,可以将处于第二故障状态的云服务器删除。值得说明的是,对于第一云服务器处于运行状态的情况下,可以等到第一云服务器中的玩家均下线后,即第一云服务器断开与所有游戏客户端的连接时,对该第一云服务器执行S532。
其中,第二云服务器是指基于新版本业务镜像文件创建的云服务器,第二云服务器的创建流程与上述的S102、S504的实现过程类似,在此不再赘述。
在得到第二云服务器之后,可以查找与目标业务标识关联的数据,查找到的数据即为基于旧版本镜像文件创建的第一云服务器中的数据,则可以将查找到的业务场景信息配置于第二云服务器中。如此,第二云服务器可以替换第一云服务器。
类似地,运维人员还可以在业务服务器100中选择需要维护的业务,需要维护的业务的标识也可以为目标业务标识。业务服务器100可以根据目标业务标识查找实例信息包括目标业务标识的云服务器,作为待维护的云服务器。然后,业务服务器100可以将待维护的云服务器的状态设置为维护状态,业务服务器100可以封装有用于将云服务器设置为维护状态的接口,例如Game-API中封装有接口A7。以上述游戏服务器为例,接口A7例如可以为:
POST{gameapi_server}/XXX/…/offline。
其中,POST表示接口A7的类型,字符“{gameapi_server}/XXX/…/offline”表示接口A7的路径,“offline”可以表示维护状态。接口A7可以具有请求体和请求头,请求体中的数据可以为需要被设置为维护状态的云服务器的第一标识信息,请求头可以包括采用目标加密算法,根据目标秘钥信息对接口A7的请求体进行加密得到的加密信息。
业务服务器100在完成对云服务器的业务维护之后,可以将处于维护状态的云服务器的状态更新为空闲状态或运行状态,具体可以根据云服务器的当前用户数量确定。
一些情况下,可能需要对所有的业务进行维护,从而需要将业务服务器100请求创建的云服务器的状态均更新为维护状态。对应地,也需要取消业务服务器100请求的所有云服务器的维护状态。基于此,业务服务器100中可以封装有用于将其请求创建的所有云服务器一次性更新为维护状态的接口A8。以上述的游戏服务器为例,接口A8例如可以为:
POST{gameapi_server}/XXX/…/maintain。
其中,“POST”为接口A8的类型,字符“{gameapi_server}/XXX/…/maintain”为接口A8在游戏服务器中的路径。
接口A8具有请求体和请求头,该请求体可以包括设置指令setMaintain,该设置指令具有一参数,若该参数的值为第一值,表示将所有云服务器的状态设置为维护状态,若该参数的值为第二值,表示取消所有云服务器的维护状态。请求头可以包括采用上述的目标加密算法,根据目标秘钥信息对接口A8的请求体中的数据进行加密得到的加密信息。
请参照图16,其示出了本申请实施例提供的一种服务器配置装置110的结构框图。服务器配置装置110可以包括:第一接口模块111、第二接口模块112以及配置模块113。
第一接口模块111用于接收第一客户端发送的云服务器分配请求,所述云服务器分配请求包括需要分配的云服务器所属的目标类型。
第二接口模块112用于调用云平台的云服务器创建接口,当所述云平台创建所述目标类型的云服务器后,在所述目标类型的云服务器中开启业务进程,将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端。
配置模块113用于接收所述第一客户端发送的业务场景信息,将所述业务场景信息配置于所述业务场景服务器的业务进程中。
可选地,第一接口模块111还可以用于:在调用云平台的云服务器创建接口,当所述云平台创建所述目标类型的云服务器后,在所述目标类型的云服务器中开启业务进程,将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端之前,获取所述云平台包括的所述目标类型的云服务器中处于空闲状态的云服务器的数量,作为第一数量;若所述第一数量满足第一条件,则调用云平台的云服务器创建接口,当所述云平台创建所述目标类型的云服务器后,在所述目标类型的云服务器中开启业务进程,将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端;若所述第一数量不满足所述第一条件,则从所述云平台中选取一个处于空闲状态的、所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端。
可选地,装置110还可以包括容量管控模块。容量管控模块用于:
针对所述云平台中的每种类型的云服务器,监控处于空闲状态的、该种类型的云服务器的数量;若监控到处于空闲状态的、该种类型的云服务器的数量满足所述第一条件,则调用所述云平台的所述云服务器创建接口,当所述云平台创建至少一个该种类型的云服务器后,在创建的该种类型的云服务器中开启至少一个业务进程,并将创建的该种类型的云服务器的状态记录为空闲状态;若监控到处于空闲状态的、该种类型的云服务器的数量满足第二条件,则调用所述云平台的云服务器回收接口,在所述云平台中删除至少一个该种类型的云服务器,至少一个该种类型的云服务器包括处于空闲状态的该种类型的云服务器或者处于故障状态的该种类型的云服务器。
可选地,故障状态可以包括第一故障状态和第二故障状态。对应地,装置110还可以状态转换模块。状态转换模块用于:
针对所述云平台包括的每个云服务器,每间隔目标时长检测是否接收到该云服务器的业务进程上报的心跳信息;若连续目标次数没有接收到该云服务器的游戏进程上报的心跳信息,则将该云服务器的状态更新为第一故障状态;调用所述云平台的检测接口,检测该云服务器是否故障;若检测到该云服务器故障,则将该云服务器的状态更新为所述第二故障状态。
可选地,状态转换模块还可以用于:在将该云服务器的状态更新为第一故障状态之后,检测该云服务器中的业务进程是否故障;若检测到该云服务器中的业务进程故障,且该云服务器没有故障,则重启故障的业务进程,在重启所述故障的业务进程后,若在目标时长内接收到所述故障的业务进程上报的心跳信息,则将该云服务器的状态更新为空闲状态或运行状态;若检测到该云服务器和该云服务器中的业务进程均没有故障,则在接收到该云服务器中的业务进程上报的心跳信息时,将该云服务器的状态更新为空闲状态或运行状态。
可选地,装置110还可以包括故障处理模块。故障处理模块用于:将处于所述第二故障状态的云服务器所处的云区域,确定为第一区域;将处于所述第二故障状态的云服务器的数据,迁移至所述第一区域中的其他云服务器中;调用云平台的云服务器回收接口,删除处于所述第二故障状态的云服务器。
可选地,故障处理模块还可以用于:若处于所述第一故障状态的云服务器的数量达到目标数量,则将处于所述第一故障状态的云服务器所处的云区域确定为第二区域,检测所述第二区域是否存在网络故障;若所述第二区域存在网络故障,则将所述第二区域中的云服务器的数据迁移至其他云区域中的云服务器,并调用云平台的云服务器回收接口,删除所述第二区域中的云服务器。
可选地,第一接口模块111还可以用于:
在将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端之后,记录所述业务场景服务器的每个业务进程的第一标识信息和该业务进程的第一通信地址的第一对应关系;在将所述业务场景信息配置于所述业务场景服务器的业务进程中之后,接收第二客户端发送的连接请求,所述连接请求包括所述业务场景服务器中的一个业务进程的第一标识信息;根据所述第一对应关系,确定与所述连接请求中的第一标识信息对应的第一通信地址,并将确定的第一通信地址发送给所述第二客户端,使所述第二客户端根据所述确定的第一通信地址与所述确定的第一通信地址对应的业务进程建立通信连接。
可选地,第一接口模块111还可以用于:
在将所述业务场景信息配置于所述业务场景服务器的业务进程中之后,将所述业务进程的状态更新为运行状态,将所述业务场景服务器的状态更新为运行状态;监控所述业务场景服务器是否与所述第一客户端连接,以及监控所述业务场景服务器的每个业务进程连接的第二客户端的数量;若所述业务场景服务器的业务进程连接的第二客户端的数量为0,则在所述云平台中保存该业务进程中配置的业务场景信息,从该业务进程中删除配置的业务场景信息,并将该业务进程的状态更新为空闲状态;若所述业务场景服务器的每个业务进程的状态均为空闲状态,且所述业务场景服务器没有与所述第一客户端连接,则将所述业务场景服务器的状态更新为空闲状态。
可选地,云平台中保存的业务场景信息与所述业务场景服务器的第二标识信息关联。对应地,第一接口模块111还可以用于:
在将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端之后,记录所述业务场景服务器的第二标识信息和所述业务场景服务器的第二通信地址的第二对应关系;在将所述业务场景服务器更新为空闲状态之后,若接收到所述第一客户端发送的包括所述第二标识信息的连接请求,则从所述云平台包括的所述目标类型的云服务器中,选取一个处于空闲状态的云服务器分配给所述第一客户端,作为新的业务场景服务器;将保存的与所述第二标识信息关联的业务场景信息配置于所述新的业务场景服务器的业务进程中;在所述第二对应关系中将所述第二通信地址更新为所述新的业务场景服务器的通信地址,记录所述新的业务场景服务器的业务进程的第一对应关系。
可选地,配置模块113还可以用于:接收与目标业务标识对应的新版本业务镜像文件,将所述云平台中当前存储的与所述目标游戏业务标识的业务镜像文件替换为所述新版本业务镜像文件;查找所述云平台中基于所述目标业务标识对应的业务镜像文件创建的每个云服务器,作为第一云服务器;针对每个第一云服务器,在该第一云服务器处于空闲状态时,保存该第一云服务器中的数据,将该第一云服务器的状态记录为第二故障状态,并基于所述新版本业务镜像文件创建云服务器作为第二云服务器,将保存的该第一云服务器中的数据配置于所述第二云服务器中。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图17,其示出了本申请实施例提供的一种业务服务器100的结构框图。本申请中的业务服务器100可以包括一个或多个如下部件:处理器101、存储器102、以及一个或多个程序,其中一个或多个程序可以被存储在存储器102中并被配置为由一个或多个处理器101执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器101可以包括一个或者多个处理核。处理器101利用各种接口和线路连接整个业务服务器100内的各个部分,通过运行或执行存储在存储器102内的指令、程序、代码集或指令集,以及调用存储在存储器102内的数据,执行业务服务器100的各种功能和处理数据。可选地,处理器101可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器101可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器101中,单独通过一块通信芯片进行实现。
存储器102可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器102可用于存储指令、程序、代码、代码集或指令集。存储器102可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储业务服务器100在使用中所创建的数据(比如云服务器的实例信息)等。
请参考图18,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1800包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1800具有执行上述方法中的任何方法步骤的程序代码1810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (13)

1.一种服务器配置方法,其特征在于,所述方法包括:
接收第一客户端发送的云服务器分配请求,所述云服务器分配请求包括需要分配的云服务器所属的目标类型;
获取云平台包括的所述目标类型的云服务器中处于空闲状态的云服务器的数量,作为第一数量;
若所述第一数量满足第一条件,调用云平台的云服务器创建接口,当所述云平台创建所述目标类型的云服务器后,在所述目标类型的云服务器中开启业务进程,将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端;
若所述第一数量不满足所述第一条件,则从所述云平台中选取一个处于空闲状态的、所述目标类型的云服务器作为所述业务场景服务器分配给所述第一客户端;
接收所述第一客户端发送的业务场景信息,将所述业务场景信息配置于所述业务场景服务器的业务进程中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对所述云平台中的每种类型的云服务器,监控处于空闲状态的、该种类型的云服务器的数量;
若监控到处于空闲状态的、该种类型的云服务器的数量满足所述第一条件,则调用所述云平台的所述云服务器创建接口,当所述云平台创建至少一个该种类型的云服务器后,在创建的该种类型的云服务器中开启至少一个业务进程,并将创建的该种类型的云服务器的状态记录为空闲状态。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若监控到处于空闲状态的、该种类型的云服务器的数量满足第二条件,则调用所述云平台的云服务器回收接口,在所述云平台中删除至少一个该种类型的云服务器,至少一个该种类型的云服务器包括处于空闲状态的该种类型的云服务器或者处于故障状态的该种类型的云服务器。
4.根据权利要求3所述的方法,其特征在于,所述故障状态包括第一故障状态和第二故障状态,所述方法还包括:
针对所述云平台包括的每个云服务器,每间隔目标时长检测是否接收到该云服务器的业务进程上报的心跳信息;
若连续目标次数没有接收到该云服务器的业务进程上报的心跳信息,则将该云服务器的状态更新为第一故障状态;
调用所述云平台的检测接口,检测该云服务器是否故障;
若检测到该云服务器故障,则将该云服务器的状态更新为所述第二故障状态。
5.根据权利要求4所述的方法,其特征在于,在所述将该云服务器的状态更新为第一故障状态之后,所述方法还包括:
检测该云服务器中的业务进程是否故障;
若检测到该云服务器中的业务进程故障,且该云服务器没有故障,则重启故障的业务进程,在重启所述故障的业务进程后,若在所述目标时长内接收到所述故障的业务进程上报的心跳信息,则将该云服务器的状态更新为空闲状态或运行状态;
若检测到该云服务器和该云服务器中的业务进程均没有故障,则在接收到该云服务器中的业务进程上报的心跳信息时,将该云服务器的状态更新为空闲状态或运行状态。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
将处于所述第二故障状态的云服务器所处的云区域,确定为第一区域;
将处于所述第二故障状态的云服务器的数据,迁移至所述第一区域中的其他云服务器中;
调用所述云平台的云服务器回收接口,删除处于所述第二故障状态的云服务器。
7.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
若处于所述第一故障状态的云服务器的数量达到目标数量,则将处于所述第一故障状态的云服务器所处的云区域确定为第二区域,检测所述第二区域是否存在网络故障;
若所述第二区域存在网络故障,则将所述第二区域中的云服务器的数据迁移至其他云区域中的云服务器,并调用所述云平台的云服务器回收接口,删除所述第二区域中的云服务器。
8.根据权利要求1-5中任意一项所述的方法,其特征在于,所述方法还包括:
在所述将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端之后,记录所述业务场景服务器的每个业务进程的第一标识信息和该业务进程的第一通信地址的第一对应关系;
在所述将所述业务场景信息配置于所述业务场景服务器的业务进程中之后,接收第二客户端发送的连接请求,所述连接请求包括所述业务场景服务器中的一个业务进程的第一标识信息;
根据所述第一对应关系,确定与所述连接请求中的第一标识信息对应的第一通信地址,并将确定的第一通信地址发送给所述第二客户端,使所述第二客户端根据所述确定的第一通信地址与所述确定的第一通信地址对应的业务进程建立通信连接。
9.根据权利要求8所述的方法,其特征在于,在所述将所述业务场景信息配置于所述业务场景服务器的业务进程中之后,所述方法还包括:
将所述业务进程的状态更新为运行状态,将所述业务场景服务器的状态更新为运行状态;
监控所述业务场景服务器是否与所述第一客户端连接,以及监控所述业务场景服务器的每个业务进程连接的第二客户端的数量;
若所述业务场景服务器的业务进程连接的第二客户端的数量为0,则在所述云平台中保存该业务进程中配置的业务场景信息,从该业务进程中删除配置的业务场景信息,并将该业务进程的状态更新为空闲状态;
若所述业务场景服务器的每个业务进程的状态均为空闲状态,且所述业务场景服务器没有与所述第一客户端连接,则将所述业务场景服务器的状态更新为空闲状态。
10.根据权利要求9所述的方法,其特征在于,所述云平台中保存的业务场景信息与所述业务场景服务器的第二标识信息关联,所述方法还包括:
在所述将具有业务进程的所述目标类型的云服务器分配给所述第一客户端,作为业务场景服务器之后,记录所述业务场景服务器的第二标识信息和所述业务场景服务器的第二通信地址的第二对应关系;
在所述将所述业务场景服务器更新为空闲状态之后,若接收到所述第一客户端发送的包括所述第二标识信息的连接请求,则从所述云平台包括的所述目标类型的云服务器中,选取一个处于空闲状态的云服务器作为新的业务场景服务器分配给所述第一客户端;
将保存的与所述第二标识信息关联的业务场景信息配置于所述新的业务场景服务器的业务进程中;
在所述第二对应关系中将所述第二通信地址更新为所述新的业务场景服务器的通信地址,记录所述新的业务场景服务器的业务进程的第一对应关系。
11.一种服务器配置装置,其特征在于,包括:
第一接口模块,用于接收第一客户端发送的云服务器分配请求,所述云服务器分配请求包括需要分配的云服务器所属的目标类型,以及用于获取云平台包括的所述目标类型的云服务器中处于空闲状态的云服务器的数量,作为第一数量;若所述第一数量满足第一条件,则调用云平台的云服务器创建接口,当所述云平台创建所述目标类型的云服务器后,在所述目标类型的云服务器中开启业务进程,将具有业务进程的所述目标类型的云服务器作为业务场景服务器分配给所述第一客户端;若所述第一数量不满足所述第一条件,则从所述云平台中选取一个处于空闲状态的、所述目标类型的云服务器作为所述业务场景服务器分配给所述第一客户端;
配置模块,用于接收所述第一客户端发送的业务场景信息,将所述业务场景信息配置于所述业务场景服务器的业务进程中。
12.一种业务服务器,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-10中任意一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-10中任意一项所述的方法。
CN202010028335.XA 2020-01-10 2020-01-10 服务器配置方法、装置及业务服务器 Active CN111277628B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010028335.XA CN111277628B (zh) 2020-01-10 2020-01-10 服务器配置方法、装置及业务服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010028335.XA CN111277628B (zh) 2020-01-10 2020-01-10 服务器配置方法、装置及业务服务器

Publications (2)

Publication Number Publication Date
CN111277628A CN111277628A (zh) 2020-06-12
CN111277628B true CN111277628B (zh) 2021-09-21

Family

ID=71001819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010028335.XA Active CN111277628B (zh) 2020-01-10 2020-01-10 服务器配置方法、装置及业务服务器

Country Status (1)

Country Link
CN (1) CN111277628B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148495B (zh) * 2020-10-09 2023-08-08 网易(杭州)网络有限公司 游戏集群管理方法、装置、存储介质和电子设备
CN112698838B (zh) * 2020-12-29 2023-09-08 广州三七互娱科技有限公司 多云容器部署系统及其容器部署方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710465A (zh) * 2012-06-07 2012-10-03 浪潮电子信息产业股份有限公司 一种监控集群存储接口节点负载的方法
CN105991478A (zh) * 2015-02-05 2016-10-05 阿里巴巴集团控股有限公司 服务器资源分配方法及其系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101902357B (zh) * 2010-06-29 2014-07-16 中兴通讯股份有限公司 对业务服务器进行调度的方法和系统
EP2824913A1 (en) * 2013-07-09 2015-01-14 Alcatel Lucent A method for generating an immersive video of a plurality of persons
CN103763343A (zh) * 2013-12-27 2014-04-30 乐视网信息技术(北京)股份有限公司 一种业务访问处理方法及装置
CN106302565B (zh) * 2015-05-12 2020-11-24 浙江格林蓝德信息技术有限公司 业务服务器的调度方法及系统
CN106330769B (zh) * 2016-11-15 2022-03-08 腾讯科技(深圳)有限公司 一种业务处理方法及服务器
CN106790598A (zh) * 2016-12-29 2017-05-31 上海木爷机器人技术有限公司 功能配置方法和系统
CN107797847A (zh) * 2017-09-25 2018-03-13 联想(北京)有限公司 用于配置服务器集群的方法和装置
CN107968836B (zh) * 2017-12-06 2020-12-18 北京微网通联股份有限公司 一种任务分发方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710465A (zh) * 2012-06-07 2012-10-03 浪潮电子信息产业股份有限公司 一种监控集群存储接口节点负载的方法
CN105991478A (zh) * 2015-02-05 2016-10-05 阿里巴巴集团控股有限公司 服务器资源分配方法及其系统

Also Published As

Publication number Publication date
CN111277628A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
EP2989747B1 (en) App store portal providing point-and-click deployment of third-party virtualized network functions
US7869373B2 (en) High-availability network systems
CN110569109B (zh) 容器更新方法、控制节点及边缘节点
US20170244596A1 (en) Configuration Information Management Method, Device, Network Element Management System and Storage Medium
CN108370328B (zh) 一种nfv mano策略描述符的管理方法及装置
CN110071984A (zh) 一种网络标识映射方法和系统以及终端、标识网关
CN107105050B (zh) 一种业务对象的存储、下载方法及系统
CN104780071A (zh) 虚拟交换机的升级方法及装置
CN110417870A (zh) 配置文件管理方法、装置、设备和存储介质
CN111277628B (zh) 服务器配置方法、装置及业务服务器
WO2017206576A1 (zh) 一种网关业务的处理方法及装置
US20240114049A1 (en) Method for emulating a known attack on a target computer network
US9819545B2 (en) Telecommunications node configuration management
KR100714681B1 (ko) 네트워크 관리 장치 및 방법
US11444998B2 (en) Bit rate reduction processing method for data file, and server
JP2016116184A (ja) 網監視装置および仮想ネットワーク管理方法
US9612822B2 (en) Telecommunications node configuration management
CN109379239B (zh) 一种OpenStack环境中配置接入交换机的方法及装置
US9871699B2 (en) Telecommunications node configuration management
CN112087327B (zh) 信息状态获取方法和装置、存储介质和电子装置
CN113556359A (zh) 一种通讯协议转换方法、设备、系统及网关设备
CN112243243B (zh) 网络切片实现方法、实体和系统
CN109688011B (zh) 一种基于OpenStack的agent选择方法及装置
CN109714197B (zh) 在集中控制中配置集控策略的方法和装置
WO2016177135A1 (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024053

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant