CN111176803B - 业务处理方法、装置、服务器及存储介质 - Google Patents

业务处理方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN111176803B
CN111176803B CN201911079353.4A CN201911079353A CN111176803B CN 111176803 B CN111176803 B CN 111176803B CN 201911079353 A CN201911079353 A CN 201911079353A CN 111176803 B CN111176803 B CN 111176803B
Authority
CN
China
Prior art keywords
resource object
target
service
data
target resource
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
CN201911079353.4A
Other languages
English (en)
Other versions
CN111176803A (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 CN201911079353.4A priority Critical patent/CN111176803B/zh
Publication of CN111176803A publication Critical patent/CN111176803A/zh
Application granted granted Critical
Publication of CN111176803B publication Critical patent/CN111176803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明实施例公开了一种业务处理方法、装置、服务器及介质,其中方法包括:接收业务请求,所述业务请求包括所请求的目标业务的标识;根据所述目标业务的标识获取目标资源对象,所述目标资源对象用于支持所述目标业务的运行;获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序上报的;若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。本发明实施例可以更好地调度资源对象执行所请求的业务。

Description

业务处理方法、装置、服务器及存储介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种业务处理方法、装置、服务器及存储介质。
背景技术
随着科技的发展,为了避免支持应用程序运行的环境变化对应用程序运行产生的影响,提出了将应用程序进行容器化管理。所谓容器化管理是指将一个应用程序以及应用程序运行时所需的资源数据比如配置文件、类库等统一打包成一个资源数据包,当在任何运行环境中需要运行该应用程序的业务时,只需运行资源数据包中与该业务对应的资源数据即可。
目前常用的容器化管理系统是Kubernetes(简称k8s),在k8s系统中,资源数据包是运行在资源对象中。当在终端中需要执行应用程序的某个业务时,需要建立该业务与资源对象之间的连接,以使得资源对象通过运行与该业务有关的资源数据,来支持该业务在终端中的运行。因此,如何建立终端所请求业务与资源对象之间的连接以执行所请求业务成为研究的热点问题。
发明内容
本发明实施例提供了一种业务处理方法、装置、服务器及存储介质,可以较好地调度资源对象执行所请求的业务。
一方面,本发明实施例提供了一种业务处理方法,包括:
接收业务请求,所述业务请求包括所请求的目标业务的标识;
根据所述目标业务的标识获取目标资源对象,所述目标资源对象用于支持所述目标业务的运行;
获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序上报的;
若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。
另一方面,本发明实施例提供了一种业务处理装置,包括:
接收单元,用于接收业务请求,所述业务请求包括所请求的目标业务的标识;
获取单元,用于根据所述目标业务的标识获取目标资源对象,所述目标资源对象用于支持所述目标业务的运行;
所述获取单元,还用于获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序上报的;
调度单元,用于若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。
再一方面,本发明实施例提供了一种服务器,所述服务器包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如下步骤:
接收单元,用于接收业务请求,所述业务请求包括所请求的目标业务的标识;
获取单元,用于根据所述目标业务的标识获取目标资源对象,所述目标资源对象用于支持所述目标业务的运行;
所述获取单元,还用于获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序上报的;
调度单元,用于若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。
再一方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如下步骤:
接收单元,用于接收业务请求,所述业务请求包括所请求的目标业务的标识;
获取单元,用于根据所述目标业务的标识获取目标资源对象,所述目标资源对象用于支持所述目标业务的运行;
所述获取单元,还用于获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序上报的;
调度单元,用于若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。
本发明实施例中,当接收到业务请求时,根据所述请求的目标业务的标识获取目标资源对象以及获取目标资源对象的运行数据,目标资源对象对应的运行数据是由目标资源对象对应的代理程序上报的;进一步的,判断目标资源对象的运行数据是否满足资源调度条件,在所述目标资源对象满足资源调度条件的情况下,调度目标资源对象处理目标业务。在上述业务处理过程中,由于目标资源对象中嵌入一个对应的代理程序,该代理程序可以在目标资源对象工作过程中,抓取目标资源对象产生的运行数据并将运行数据上报给服务器,以便于服务器可以根据运行数据对目标资源对象进行调度,实现了目标资源对象与服务器之间的交互,能够较好的调度资源对象来执行所请求的业务。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种服务管理系统的结构示意图;
图2是本发明实施例提供的一种业务处理方法的流程示意图;
图3是本发明实施例提供的另一种业务处理方法的流程示意图;
图4是本发明实施例提供的一种处理双人对战游戏业务的示意图;
图5是本发明实施例提供的一种业务处理装置的结构示意图;
图6是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
容器技术是一种可有效地将某应用程序的资源数据划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求的技术。随着容器技术的兴起,越来越多的用户选择将应用程序(如游戏应用、直播应用等)进行容器化,并使用容器集群管理系统(后续以k8s(kubernetes)为例进行说明)为该应用程序提供相应的有状态服务。所谓有状态服务是指应用服务器中存储着应用程序对应的客户端的各个请求的上下文相关信息,使得该客户端所发送的与应用程序相关的后续请求均可使用以前相关请求的信息,以使得为该应用程序的任意业务的运行提供支持时,无需重新获取支持该业务运行的其他相关信息,从而可提高业务运行的效率。k8s在为应用程序提供有状态服务时,为了避免多个应用程序之间的相互影响,k8s系统中设计了pod,所述pod是指k8s系统中可以创建、调度和管理的最小单元,是k8s系统中运行有状态服务的资源对象。具体地,k8s系统中将每个应用程序的相关资源数据(如代码、运行环境、配置文件等任意一种或多种)打包到相应的pod中,使其成为pod中运行的一个容器(container),因此,pod也可以理解为一个容器环境下的“逻辑主机”。
其中,k8s系统通常包括一个管理(master)节点以及至少一个服务节点(node),所述管理节点用于对k8s进行资源管理、pod调度、系统监测等控制处理;服务节点的实质是服务器,其上可运行一个或多个pod,即服务节点可作为pod运行的宿主机,对于服务节点而言,pod可理解成是运行于该服务节点中的虚拟服务器。经实践表明,目前的k8s系统中,pod具有弹性伸缩功能,pod的数量以及pod的扩缩容策略均是管理节点依据事先约定的配置文件控制的。比如,事先约定的配置文件中指示k8s系统中pod的数量为5个,如果管理节点检测到k8s系统中pod的数量为4,则立即创建一个pod以保证pod的数量达到5;如果管理节点检测到系统中pod的数量为6,则立即销毁一个pod以保证数量达到5。
可见,目前的k8s系统中,pod的创建和销毁主要依赖于管理节点的管理,每个pod不能主动与管理节点交互。这样,管理节点不能及时的获取到每个pod中的服务状态数据以及运行数据等,服务状态数据用于反映pod的健康情况,此处的健康情况包括健康和不健康,所谓健康是指pod上的资源数据能够正常运行或pod的网络接口能够接通;反之,所谓不健康是指pod上的资源数据无法正常运行或者pod的网络接口不能接通。此处的运行数据可包括以下至少一种:pod正在处理的业务的数量、正在连接的终端数量、pod的处理器占用率以及内存占用率等任意一种或多种。因此,为了保证所请求的业务正常被执行,目前的k8s系统有以下两种pod的调度方式,其中一种是:当接收到新的业务请求时,从多个pod中通常配置一个空闲的pod支持所请求业务,这种调度pod的方式下一个pod只支持一个业务,导致pod的利用率低;另一种是,当接收到新的业务请求时,创建一个新的pod来支持所请求的业务运行,但是创建pod有时延,无法支持游戏对局数量爆发式增涨的情况。
现有技术中有一些企业针对目前k8s系统中管理节点不能获取pod的服务状态数据的问题,提出了为pod提供服务状态检查软件包sdk,以使得pod运行其上的资源数据时,调用服务状态检查sdk检查pod的健康状态,并向企业相应的应用服务器上报pod的健康状态。这样一来,虽然企业的应用服务器可以获取到pod的健康状态,但是pod节点的扩缩容仍然是管理节点依据事先约定的配置文件控制的,仍然存在一个pod支持一个业务的问题。
基于上述描述,本发明实施例设计了一种裸pod,以及为裸pod设置了对应的代理程序(agent)。所谓的裸pod是指不依赖于k8s中的管理节点master控制的pod,该裸pod的创建以及其上资源数据的运行可以由业务管理者控制。裸pod与现有常规pod的差异在于:裸pod关闭了弹性伸缩功能。代理程序agent用于抓取裸pod的服务状态数据和运行数据并上报至应用服务器。需要说明的是,代理程序agent可以设置于裸pod内部的存储空间,也可以设置于与裸pod相互独立的另一存储空间中;为了方便阐述,后续以代理程序设置于裸pod的内部的存储空间为例进行说明。基于上述的裸pod,本发明实施例提出了一种服务管理系统,以更好地调度资源对象pod执行所请求的业务。
参见图1所示,该服务管理系统可至少包括:至少一个终端11、至少一个应用服务器12、控制管理服务器(控制器,controller)13以及容器集群管理系统14。该容器集群管理系统14可以是上述的k8s系统,也可以是Swarm系统等其他容器集群管理系统。其中,所述容器集群管理系统14包括至少一个服务节点101,每个服务节点101中包括至少一个裸pod1011,每个裸pod中部署有代理程序(agent)。每个裸pod上运行一个或多个容器,容器中包括一个或多个应用程序的相关资源数据。可选的,在创建每个裸pod时,会为pod创建一个容器,该容器的网络ip地址和网络接口可以成为裸pod的网络地址和网络接口。
每个裸pod中的代理程序可以负责为相应的裸pod向控制管理服务器13注册监测服务。当裸pod上的监测服务注册成功后,裸pod中的代理程序随着裸pod1011包括的容器中资源数据的运行而运行。在代理程序运行过程中,抓取相应裸pod1011在运行资源数据过程中产生的运行数据,如处理器占用率、内存占用率等,并将抓取到的运行数据上报给控制管理服务器13。在一个实施例中,所述运行数据还可以包括正在处理的业务的数量以及正在连接的终端数量等,这些运行数据可以是代理程序通过调用业务管理方的数据监测脚本抓取到的。不同业务,需要监测的数据可能不同或者相同,数据监测脚本也可以相同或者不相同。为了方便描述,在后续描述中,假设业务管理者配置的数据监测脚本指示代理进程抓取裸pod上正在处理的业务的数量和/或正在连接的终端数量。
代理程序还可以在接收到控制管理服务器13的服务状态检测指示时,调取业务管理方配置的服务状态检查脚本检测相应的裸pod的健康情况,并将检测得到的服务状态数据上报给控制管理服务器13。应当理解的,由于服务状态检查脚本是业务管理方配置的,针对不同业务,服务状态检查脚本可能不同,对健康或者不健康的定义也不同。
在图1所述的服务管理系统中,终端11中可运行一个或多个应用程序,比如游戏应用程序、主播应用程序等,用户可以通过终端11输入对某个应用程序的目标业务的运行操作,所述目标业务可以指该应用程序中的任意一种业务,比如目标业务可以是游戏应用程序中的单人游戏业务、双人或多人对战业务等。
应用服务器12可包括与各个应用程序对应的服务器,比如与游戏应用程序对应的游戏应用服务器,与直播应用程序对应的直播应用服务器等。终端11在检测到针对某个应用程序中目标业务的运行操作后,向与该应用程序对应的应用服务器12发送业务指令。比如,终端11检测到用户在游戏应用程序中输入了双人对战业务的运行操作,则终端11生成业务指令并将业务指令发送给与游戏应用程序对应的应用服务器12。应用服务器12接收到业务指令后,向控制管理服务器13发送业务请求;控制管理服务器13在容器集群管理系统14中查找与目标业务对应的至少一个裸pod,并根据至少一个裸pod对应的代理程序上报的运行数据以及服务状态数据调度用于执行目标业务的目标裸pod。
控制管理服务器13将目标裸pod的网络地址和网络接口发送给目标业务对应的应用服务器12,应用服务器12将网络地址和网络接口发送给终端11,由终端11建立目标业务与目标裸pod之间的连接,以执行目标业务。
基于上述描述,本发明实施例还提供了一种业务处理方法,参考图2为本发明实施例提供的一种业务处理方法的流程示意图。图2所示的业务处理方法可由服务器执行,具体可由服务器中的处理器执行。此处所述服务器可以指前述的控制管理服务器。图2所示的业务处理方法可包括如下步骤:
步骤S201、接收业务请求。
在一个实施例中,所述业务请求可以是终端发送给应用服务器,由应用服务器发送给服务器的,具体实现中,可以是终端在接收到用户针对目标业务的运行操作后发送的。所述目标业务可以是终端中运行的任何应用程序的任意一种业务,比如游戏应用程序中的游戏对局业务,再如直播应用程序中的开启直播业务等等。
在一个实施例中,所述业务请求中携带目标业务的标识,该目标业务的标识可以由应用程序标识+目标业务标识组成,比如目标业务为游戏应用程序A中的双人对战业务B,该目标业务的业务标识可以由A的标识+B的标识组成。
步骤S202、根据目标业务的标识获取目标资源对象,目标资源对象用于支持目标业务的运行。
其中,目标资源对象可以是任意一个与目标业务的标识对应的资源对象,所述目标资源对象用于支持目标业务的运行。其中,目标资源对象中可包括资源数据,所述资源数据可以是支持目标业务运行的程序代码,所述目标资源对象支持目标业务的运行可以指:目标资源对象通过运行资源数据以支持目标业务的运行。
在一个实施例中,所述根据所述目标业务的标识获取目标资源象,包括:查找服务管理系统中与目标业务的标识对应的可用资源对象;从查找到的可用资源对象中随机选择任意一个可用资源对象作为目标资源对象。
在其他实施例中,所述根据所述目标业务的标识获取目标资源对象,包括:查找服务管理系统中与目标业务的标识对应的可用资源对象;根据各个可用资源对象的创建时间选择目标资源对象。例如,在服务管理系统中查找到3个与目标业务的标识对应的可用资源对象,可以根据创建时间与当前时间之间的时间间隔由小大到的顺序,从查找到的可用资源对象中依次选取目标资源对象;或者,可以根据时间间隔由大到小的顺序,从查找到的可用资源对象中依次选取目标资源对象。
在其他实施例中,所述根据所述目标业务的标识获取目标资源对象,包括:根据与目标业务标识对应的可用资源对象,以及各个可用资源对象的服务状态数据确定候选资源对象集合;从所述候选资源对象集合中选择任意一个候选资源对象作为目标资源对象。其中,各个可用资源对象的服务状态数据可以由相应的可用资源对象对应的代理程序上报,对于该部分将在后面的实施例中详细介绍。每个可用资源对象的服务状态数据用于表示反映该可用资源对象的健康情况,所谓健康是指该可用资源对象能够为目标业务提供支持;反之,所谓不健康是指该可用资源对象不能为目标业务提供支持。在一个实施例中,每个可用资源对象能够为目标业务提供支持可以指可用资源对象的网络接口能够接口,每个可用资源对象不能为目标业务提供支持可以指可用资源对象的网络接口不能接通。在其他实施例中,由前述可知,每个可用资源对象中可包括支持目标业务运行的资源数据,则可用资源对象能够为目标业务提供支持还可以指该可用资源对象包括的资源数据能够正常运行;可用资源对象不能为目标业务提供支持还可以指资源对象包括的资源数据不能够正常运行。
步骤S203、获取目标资源对象的运行数据,目标资源对象的运行数据是由目标资源对象对应的代理程序上报的。
在一个实施例中,所述目标资源对象对应的代理程序可以是目标资源对象对应的资源数据中的一部分;或者,所述目标资源对象对应的代理程序可以是独立与资源数据的一段数据。可选的,当检测到目标资源对象运行所述目标资源对象包括的资源数据时,同步运行所述代理程序。
在一个实施例中,如果所述目标资源对象对应的代理程序是所述目标资源对象包括的资源数据中的一部分,则所述当检测到目标资源对象运行所述目标资源对象包括的资源数据时,同步运行所述代理程序,包括;所述代理程序随着目标资源对象运行所述资源数据而被运行。应当理解的,在计算机领域中,运行程序代码的活动称为应用进程,基于上述描述,资源数据可以是支持目标业务运行的程序代码,因此,目标资源对象运行资源数据的活动可以称为运行一个业务进程。因此,如果目标资源对象对应的代理程序是目标资源数据的一部分,则资源数据和代理程序位于同一个业务进程中。
在其他实施例中,如果所述目标资源对象对应的代理程序是独立与所述目标资源对象的资源数据的程序,则所述当检测到目标资源对象运行所述目标资源对象包括的资源数据时,同步运行所述代理程序,包括:当检测到已创建业务进程运行资源数据时,同步创建代理进程(或称为守护进程)运行代理程序。
在一个实施例中,基于上述,目标资源对象受到业务管理方终端的控制,所述目标资源对象运行资源数据的方式可以为:当业务管理方终端检测到运行资源数据的操作时,业务管理方终端向业务方对应的应用服务器发送运行指令,由应用服务器向服务器发送运行指令;服务器接收到运行指令后,控制目标资源对象运行资源数据。
在一个实施例中,当目标资源对象对应的代理程序运行后,该代理程序会抓取目标资源对象在运行目标资源对象包括的资源数据过程中产生的运行数据并可以将所述运行数据上报给服务器。其中,所述运行数据可包括正在处理的目标业务的数量、处理器占用率、内存占用率以及正在连接的终端数量。其中,正在处理的目标业务的数量以及正在连接的终端数量可以由代理程序调用数据监测脚本抓取到的,所述数据监测脚本可以由业务管理者设置的。可选的,代理程序中可设置抓取数据的定时时间,随着代理程序的运行,当检测到抓取数据的定时时间到达时,从业务管理者终端中调用数据监测脚本来抓取正在处理的目标业务的数量或者正在连接的终端数量。
其中,所述正在处理的目标业务的数量用于表示目标资源对象正在为多少个目标业务提供支持,举例来说,假设目标业务为游戏应用程序中的游戏对局业务,所述正在处理的目标业务的数量是指当前时刻目标资源对象正在为多少个游戏对局提供支持;所述正在连接的终端数量是指所述服务器当前时刻正在与多少个终端之间建立通信连接。应当理解的,一个终端中可运行多个目标业务,因此,上述正在连接的终端数量小于等于正在处理的目标业务的数量。举例来说,假设用户甲以游戏应用账号甲通过浏览器登录到游戏应用的网页版并进入游戏应用的对局业务;用户乙以游戏账号乙登录到游戏应用的客户端中并进入新的游戏对局业务。此时,目标资源对象中正在处理的目标业务的数量为2,目标资源对象正在连接的终端数量为1。
步骤S204、若目标资源对象的运行数据满足资源调度条件,则调度目标资源对象处理目标业务。
在一个实施例中,如果目标资源对象的运行数据满足资源调度条件,则调度目标资源对象处理目标业务;如果目标资源对象的运行数据不满足资源调度条件,则可重新还行步骤S202-步骤S204,直到找到用于处理目标业务的资源对象。
由前述可知,目标资源对象包括资源数据,在一个实施例中,所述调度目标资源对象处理目标业务包括:获取所述目标资源对象的连接数据,并将所述连接数据发送给应用服务器,以使得应用服务器将连接数据发送给终端,由终端建立所述目标业务与所述目标资源对象之间的连接,进而通过目标资源对象运行资源数据来支持所述目标业务的运行。其中,所述目标资源对象的连接数据可包括目标资源对象的网络地址和网络接口,终端可以基于目标资源对象的网络地址和网络接口建立所述目标业务与所述目标资源对象之间的连接。
在一个实施例中,所述运行数据包括目标资源对象正在处理的目标业务的数量,所述目标资源对象的运行数据满足资源调度条件可以包括目标资源对象正在处理的目标业务的数量为所有候选资源对象正在处理的所述目标业务的数量最少。具体地,所述目标资源对象的运行数据满足资源调度条件,包括:若所述目标资源对象正在处理的所述目标业务的数量为所述候选资源对象集合中所有候选资源对象正在处理的所述目标业务的数量中的最小值,则确定所述目标资源对象的运行数据满足资源调度条件。具体实现中,获取除目标资源对象外,候选资源集合中其他候选资源对象对应的运行数据;将所述目标资源对象的资源数据包括的正在处理的目标业务的数量与其他候选资源对象的资源数据包括正在处理的目标业务的数量进行比较,如果目标资源对象对应的数量最小,则确定目标资源对象的运行数据满足资源调度条件;否则,则确定目标资源对象的运行数据不满足资源调度条件。
又一个实施例中,所述目标资源对象的运行数据满足资源调度条件可以包括目标资源对象的处理器占用率低于处理器占用率阈值。其他实施例中,所述目标资源对象的运行数据满足资源调度条件可以包括内存占用率低于内存占用率阈值。
应当理解的,对于目标业务来说,如果该目标业务的参与者数量固定不变,则目标资源对象处理一个目标业务对处理器的占用率、对内存的占用率以及其他支持目标业务运行所需的其他功耗可以近似看作相同;但是,对于参与者数量不固定的目标业务来说,目标资源对象处理一个目标业务对处理器的占用率、对内存的占用率以及其他支持目标业务运行所需的其他功耗相差较大。以及,目标资源对象处理目标业务和其他与目标业务不相同的业务时,对处理器的占用率和对内存的占用率相差较大。因此,上述几种确定目标资源对象的运行数据是否满足资源调度条件的方式更适用于下述情况:与目标业务标识对应的资源对象只用于处理目标业务,不处理其他业务,且目标业务的参与者的数量是固定不变,为预设数量。该预设数量可以是目标业务的业务管理者确定的。
在其他实施例中,所述目标资源对象的运行数据满足资源调度条件可以包括目标资源对象的调度参考值为所述候选资源对象集合中所有候选资源对象的调度参考值中的最大值;此处的调度参考值是指用于衡量相应的资源对象被分配执行业务的可能性的数值。一个资源对象的调度参考值越大,该资源对象被分类执行业务的可能性越大。具体实现中,目标资源对象的调度参考值是根据相应的资源对象的运行数据确定的。具体地,所述根据所述目标资源对象的运行数据确定所述目标资源对象的调度参考值,包括:若所述目标资源对象的调度参考值为最大值,则所述目标资源对象的运行数据满足资源调度条件。具体实现中,获取候选资源对象集合中除目标资源对象外,其他候选资源对象的运行数据;基于目标资源对象的运行数据确定目标资源对象的调度参考值,基于其他候选资源对象的运行数据确定其他候选资源对象的调度参考值;如果目标资源对象的调度参考值大于任意一个其他候选资源对象的调度参考值,则确定所述目标资源对象的运行数据满足资源调度条件。其中,如何根据运行数据确定调度参考值将在后面的实施例中具体介绍。
该种确定目标资源对象的运行数据是否满足资源调度条件的方法可以适用于更多情况,比如可以适用于以下情况中的任意一种或多种:与目标业务的标识对应的资源对象除了处理目标业务,还处理其他业务;或者,与目标业务的标识对应的资源对象只处理目标业务,但是目标业务的参与者不固定;再或者,与目标业务标识对应的资源对象中用于处理目标业务,不处理其他业务,且目标业务的参与者的数量是固定不变为为预设数量。
本发明实施例中,当接收到业务请求时,根据所述请求的目标业务的标识获取目标资源对象以及获取目标资源对象的运行数据,目标资源对应的运行数据是由目标资源对象对应的代理程序上报的;进一步的,判断目标资源对象的运行数据是否满足资源调度条件,在所述目标资源对象满足资源调度条件,则调度目标资源对象处理目标业务。在上述业务处理过程中,由于目标资源对象中嵌入一个对应的代理程序,该代理程序可以在目标资源对象工作过程中,抓取目标资源对象产生的运行数据并将运行数据上报给服务器,以便于服务器可以根据运行数据对目标资源对象进行调度,实现了目标资源对象与服务器之间的交互,能够较好的调度资源对象来执行所请求的业务。
基于上述的业务处理方法,本发明实施例提供了另一种业务处理方法,参考图3为本发明实施例提供的另一种业务处理方法的流程示意图。图3所示的业务处理方法可由服务器执行,具体可由服务器中的处理器执行,此处所述服务器可以指前述的控制管理服务器。图3所示的业务处理方法可包括如下步骤:
步骤S301、接收业务请求,业务请求包括所请求的目标业务的标识。
步骤S302、根据目标业务的标识获取目标业务对应的可用资源对象。
步骤S303、获取可用资源对象的服务状态数据,且若可用资源对象的服务状态数据指示可用资源对象能够为目标业务的运行提供支持,则将可用资源对象作为候选资源对象添加至候选资源对象集合中。
由前述可知,服务管理系统中可运行多个资源对象,各个资源对象可以对应多个不同的应用程序的各种业务。对于目标业务来说,可能存在多个用于处理目标业务的资源对象,将用于处理目标业务的资源对象成为可用资源对象。在任意一个可用资源对象处理目标业务的过程中,可能由于网络异常或者资源数据运行出错、或者网络接口不能接通等原因导可用资源对象处理业务出错,这也就意味着可用资源对象不能够继续为目标业务的运行提供支持。如果可用资源对象处理目标业务出错,则称可用资源对象的健康状态为不健康。
因此,为了保证目标业务被正常运行,本发明实施例中可以在接收到目标业务的业务请求后,首先从与目标业务标识对应的可用资源对象中过滤掉不健康的可用资源对象,得到健康的可用资源对象;然后将健康的可用资源对象作为候选资源对象组成候选资源对象集合,以便于后续从候选资源对象集合调度用于执行目标业务的目标资源对象。如此一来,经过初步过滤,缩小了调度范围,提高了调度效率,从而可提供目标业务的运行效率。
在步骤S302中所述的可用资源对象是指与目标业务的标识对应的资源对象中的任意一个,可用资源对象对应一个代理程序,该代理程序随着可用资源对象包括的资源数据运行而运行。在一个实施例中,代理程序在运行过程中可监测可用资源对象的服务状态,并定时或者实时地将可用资源对象的服务状态数据上报给服务器。可选的,代理程序在运行过程中,可以将可用资源对象产生的运行数据上报给服务器,以利于服务器基于可用资源对象的运行数据进行调度。
在一个实施例中,可用资源对象中注册了监测服务后,可用资源对象的代理程序才可以对可用资源对象的服务状态以及运行数据进行监测。可选的,可用资源对象对应的代理程序在开始运行后,可以通过全局变量标识检测该可用资源对象中是否已经注册了监测服务。所述全局变量标识为初始值时,表示可用资源对象中未注册监测服务,所述全局变量标识为预设值时,标识可用资源对象中已注册监测服务。当监测到可用资源对象中还未注册监测服务时,代理程序可以调用目标业务启动的检测脚本check_process.sh来检查可用资源对象包括的资源数据的运行情况,若检测脚本返回结果为0,则表示可用资源对象包括的资源数据已经全部开始运行;若检测脚本返回结果非0,则表示可用资源对象包括的资源数据还未全部运行,或者运行错误。
在一个实施例中,若检测到可用资源对象包括的资源数据已经全部开始运行,则进一步的,代理程序可以向服务器发送监测服务注册信息,所监测述服务注册信息中包括可用资源对象的标识信息和所述可用资源对象的连接数据。所述可用资源对象的标识信息可以包括所述可用资源对象的名称,或者所述可用资源对象的标识信息可以包括所述可用资源对象的序号。所述连接数据是指用于将目标资源对象与目标业务建立连接的数据,所述连接数据可包括可用资源对象的网络地址和网络接口。
可选的,代理程序可以通过调用http_restfull api接口向服务器发送监测注册信息。在一个实施例中,所述监测服务注册信息中还可以包括资源对象所在的命名空间,不同的命名空间中包括不同的资源对象。不同的命名空间之间是相互隔离的,各个命名空间中的资源对象互不影响。可选的,可以将支持同一个应用程序的各种业务运行的资源对象划分到同一个命名空间;或者,也可以将支持同一个应用程序的同一个业务运行的资源对象划分到同一个命名空间。应当理解的,上述只是列举几种命名空间的划分,对于具体的划分方式不做限定。
服务器接收到可用资源对象对应的代理程序上报的监测服务注册信息后,可以确定可用资源对象中的运行数据以及服务状态数据将被上传到服务器。进一步的服务器存储可用资源对应的标识信息和所述可用资源的连接数据。
在一个实施例中,所述代理程序可以监测可用资源对象的服务状态,可包括:向所述目标资源对象对应的代理程序发送服务状态检测指令,所述服务状态检查指令用于指示所述目标资源对象对应的代理程序检测所述目标资源对象的服务状态,得到服务状态数据;接收所述目标资源对象对应的代理程序返回的服务状态数据。其中,目标资源对象对应的代理程序在检测目标资源对象的服务状态时,可包括:调用业务管理者提供的服务状态检查脚本对目标资源对象进行服务状态检查,得到服务状态数据。其中,所述服务状态检查脚本可以是业务管理方设置的,服务状态检查脚本中可以设置代理程序对目标资源对象进行哪些检查,比如服务状态检查脚本中设置:检查目标资源对象的网络接口是否能够接通后;或者,检查目标资源对象中的资源数据是否能够被正常运行等等。
在其他实施例中,在向目标资源对象对应的代理程序发送服务状态检测指令之前,还包括:判断是否检测到对目标资源对象进行服务状态检查的触发指令;若检测触发指令;若检测到触发指令,则执行向目标资源对象对应的代理程序发送服务状态检测指令的步骤;若未检测到触发指令,则可不执行向目标资源对象对应的代理程序发送服务状态检测指令的步骤。
其中,所述触发条件可以包括:接收到应用服务器发送的业务请求;或者,检测到预设的服务状态检测时间到达。具体实现中,当服务器接收到应用服务器发送的业务请求后,可以向代理程序发送服务状态检测指令,以检测各个可用资源对象最新的健康状态。或者,服务器可以预先设置获取可用资源对象的服务状态(健康状态)数据的时间;当检测到设置的时间到达时,向代理程序发送服务状态检测指令。服务器设置的时间可以是一个时间点,也可以是一个时间段。比如设置在上午10点、下午6点进行服务状态检查;再如,可以设置每隔1个小时进行服务状态检查。可选的,服务状态数据可包括用于表示健康状态和不健康状态的标识,比如业务管理者预先设置的服务状态检查检查脚本中规定,如果可用资源对象处于健康状态则向服务器返回的服务状态数据为0;如果可用资源对象处于不健康状态则向服务器返回的服务状态数据为1。
服务器接收到可用资源对象的服务状态数据后,根据服务状态数据判断是是否该可用资源对象能够被添加到候选资源对象集合中。具体地,如果服务状态数据指示可用资源对象处于健康状态,也即能够为目标业务的运行提供支持,则将可用资源对象作为候选资源对象添加到候选资源对象集合中;如果服务状态数据指示可用资源对象处于不健康状态,也即不能够为目标业务的运行提供支持,则不将可用资源对象添加到候选资源对象集合中。
步骤S304、从候选资源对象集合中获取目标资源对象,并获取目标资源对象的运行数据。
步骤S305、根据目标资源对象的运行数据确定目标资源对象的调度参考值。
其中,目标资源对象可以是候选资源对象集合中的任意一个候选资源对象,所述目标资源对象的运行数据可包括正在处理的目标业务的数量、处理器占用率以及内存占用率。在其他实施例中,所述目标资源对象的运行数据还可以包括目标资源对象的标识信息比如名称以及目标资源对象所在的命名空间中的任意一个或多个。在一个实施例中,在步骤S305中所述根据目标资源对象的运行数据确定目标资源对象的调度参考值,包括:获取目标业务对应的权重值;将正在处理的目标业务的数量、处理器占用率、内存占用率以及目标业务对应的权重值输入到调度参考值确定规则中,得到目标资源对象对应的调度参考值。可选的,调度参考值规则可如公式(1)所示:
其中,n表示候选资源对象的总数量,i表示第i个候选资源对象,表示所有候选资源对象集合中各个候选资源对象正在处理的目标业务的总数量,cj表示第j个目标资源对象正在处理的目标业务的数量,a表示目标资源对象的处理器占用率,b表示目标资源对象的内存占用率,a和b的值在2%-100%之间,weight表示目标业务对应的权重值,pj表示目标资源对象对应的调度参考值,10000为常数。其中,目标业务对应的权重值可以是业务管理者设置的,也可以是默认值,通常情况下,默认值为10%。
步骤S306、若目标资源对象的调度参考值为候选资源对象集合中所有候选资源对象的调度参考值中的最大值,则确定目标资源对象的运行数据满足资源调度条件。
在一个实施例中,对于候选资源对象结合中除目标资源对象外,其他可用候选资源对象对应的调度参考值也可以通过上述公式(1)确定。在确定了候选资源对象集合中其他候选资源对象对应的调度参考值之后,将目标资源对象对应的调度参考值与所述其他资源对象对应的调度参考值进行比较;若其他资源对象对应的调度参考值为最大值,则确定所述目标资源对象的运行数据满足资源调度条件。
步骤S307、根据目标资源对象对应的标识信息获取目标资源对象的连接数据,并根据连接数据建立目标业务与目标资源对象之间的连接,以采用目标资源对象运行的资源数据来支持目标业务的运行。
确定目标资源对象对应的运行数据满足资源调度条件后,获取目标资源对象对应的标识信息;进一步的,基于目标资源对象对应的标识信息获取目标资源对象的连接数据。其中,所述目标资源对象对应的标识信息可以包括目标资源对象的名称;或者,所述目标资源对象对应的标识信息可以包括目标资源对象的序号。
在一个实施例中,所述目标资源对象的连接数据可以包括目标资源对象对应的网络接口和网络地址,所述根据连接数据建立所述目标业务与所述目标资源对象之间的连接,包括:将所述目标资源对象的网络地址和所述目标资源对象的网络接口发送给所述应用服务器,以由所述应用服务器将所述网络地址和网络接口发送给终端,以使得所述终端通过所述网络接口建立所述目标业务与所述网络地址之间的连接。
本发明实施例中,服务器接收到业务请求后,根据所请求的目标业务的表示你获取目标业务对应的可用资源对象;进一步的,获取可用资源对象的服务状态数据,且若可用资源对象的服务状态数据指示可用资源对象能够为目标业务的运行提供支持,则将可用资源对象作为候选资源对象添加至候选资源对象集合中;从候选资源对象集合中获取目标资源对象,并获取目标资源对象的运行数据;然后根据目标资源对象的运行数据确定目标资源对象的调度参考值,如果在候选资源对象集合中,目标资源对象的调度参考值最大,则调度目标资源对象处理目标业务。
在上述业务处理过程中,首先根据可用资源对象的服务状态数据得到候选资源对象集合,缩小了资源对象的调度范围,有利于提高资源调度效率,从而可提高目标业务的执行效率。另外,在对候选资源对象集合中的候选资源对象调度时,选择调度参考值满足资源调度条件的候选资源对象来执行目标业务,所述调度参考值是根据候选资源对象的运行数据确定的,因此在根据调度参考值调度候选资源对象时,可以较为准确的确定出适合用于执行目标业务的目标资源对象。此外,通过资源对象中的代理程序上报资源对象的服务状态数据以及运行数据,实现对各个资源对象进行调度,实现了资源对象的复用,提高了资源对象的利用率。
下面以目标业务为游戏应用程序中的双人对战业务为例,对上述本发明实施例的服务管理系统以及业务处理方法进行阐述。其中,游戏应用程序可以是客户端版;或者,可以是网页版;或者,可以是集成在社交应用程序中的小程序,比如微信应用程序中的小游戏。
参考图4,为本发明实施例提供的一种处理双人对战业务的示意图,图4中包括对局创建者使用的第一终端401、游戏应用服务器402、控制管理服务器403以及容器集群管理系统404。第一终端401中可安装有游戏应用程序的客户端以使得对局创建者通过客户端进入到游戏应用程序中;或者,对局创建者可以通过第一终端101启动游戏应用程序的网页版,在网页版中进入到游戏应用程序中。
在一个实施例中,对局创建者可以通过预先注册的登录账号和登录密码登录到游戏应用程序中。当对局创建者想要执行游戏应用程序中的双人对战业务时,可以在第一终端401的游戏应用程序中发起创建对局的创建请求(相当于业务请求),然后第一终端401将创建请求发送给游戏应用服务器402,由游戏应用服务器402将业务请求发送给控制管理服务器403。
在一个实施例中,对局创建者在第一终端401的游戏应用程序发起创建对局的创建请求时,可以在游戏应用程序中选择对局参与者,比如选择好友用户中的某个好友进行对战,此时第一终端401向游戏应用服务器402发送的创建请求中携带对局参与者的标识。在其他实施例中,对局创建者在第一终端401的游戏应用程序发起创建对局的创建请求时,可以不选择对局参与者,比如对局创建者选择随机组成对局,此时第一终端401向游戏应用服务器402发送的创建请求中不携带对局参与者的标识。这样,游戏应用服务器402可以从当前时刻其他对局发起者中选择任意一个作为与第一终端401的创建请求对应的对局参与者。
在一个实施例中,控制管理服务器403接收到游戏应用服务器402发送的创建请求后,获取与双人对战业务对应的资源对象如图4中所示,假设与双人对战业务对应的资源对象包括pod1,pod2和pod3。进一步的,获取各个资源对象对应的代理程序上报的运行数据,也即获取pod1对应的代理程序上报的pod1的运行数据、获取pod2对应的代理程序上报的运行数据以及获取pod3对应代理程序上报的运行数据,所述pod1/pod2/pod3对应的运行数据可以包括pod1/pod2/pod3正在处理的目标业务的数量、处理器占用率以及内存占用率。进一步的,根据pod1对应的运行数据和公式(1)确定pod1的调度参考值;根据pod2对应的运行数据和公式(1)计算得到pod2的调度参考值;根据pod3的运行数据和公式(1)计算得到pod3的调度参考值;比较pod1的调度参考值,pod2的调度参考值以及pod3的调度参考值,从中选择调度参考值最大资源对象(假设为pod2)作为被调度来执行目标业务的资源对象。获取pod2的网络地址和网络接口,将pod2的网络接口和网络地址发送给游戏应用服务器402,由游戏应用服务器402将网络接口和网络地址发送给第一终端401。
在一个实施例中,第一终端401根据网络地址和网络接口建立与pod2的连接(相当于终端创建了一个对局),以使得pod2运行pod2中与双人对战业务相对应的资源数据以支持第一终端401中的对局。如果第一终端401发送给游戏应用服务器402的创建请求中携带对局参与者的标识,则游戏应用服务器402将网络地址和网络接口发送给第一终端401后,第一终端401根据网络地址和网络接口向对局参与者405发送进入双人对战业务的通知信息,该通知信息中可包括网络地址和网络接口。这样对局参与者可通过点击通知信息进入到控制管理服务器403为第一终端401创建的对局中。
在其他实施例中,如果第一终端401发送给游戏应用服务器402的创建请求中不携带对局参与者的标识,则游戏应用服务器402向第一终端401发送网络地址和网络接口的同时,也向对局参与者405发送网络地址和网络接口,这样实现了对局发起者与对局参与者在一个对局中。
在检测到上述对局结束后,pod2上正在连接的目标业务请求的数量减少一个。假设在上述调度过程中,pod2对应的代理程序上报的运行数据中包括的正在连接的目标业务的数量为x,检测到上述对局结束后,pod2中正在连接的目标业务的数量减少为x-1。当下次需要进行资源对象调度时,根据pod2对应正在连接的目标业务的数量为x-1以及其他运行数据计算pod2的调度参考值。
基于上述的业务处理方法,本发明实施例还提供了一种业务处理装置,所述业务处理装置可以配置于控制管理服务器中,可以用于执行图2和图3所示的业务处理方法。请参考图5,为本发明是实施例提供的一种业务处理装置的结构示意图。图5所示的业务处理装置可运行如下单元:
接收单元501,用于接收业务请求,所述业务请求包括所请求的目标业务的标识;
获取单元502,用于根据所述目标业务的标识获取目标资源对象,所述目标资源对象用于支持所述目标业务的运行;
所述获取单元502,还用于获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序上报的;
处理单元503,用于若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。
在一个实施例中,所述目标资源对象包括资源数据,所述业务处理装置还包括运行单元504,所述运行单元504用于当检测到所述目标资源对象运行所述目标资源对象包括的资源数据时,同步运行所述代理程序,所述代理程序用于捕获在所述目标资源对象运行所述资源数据的过程中产生的运行数据。
在一个实施例中,所述获取单元502还用于:根据所述目标业务的标识获取所述目标业务对应的可用资源对象;所述获取单元502还用于:获取所述可用资源对象的服务状态数据,所述可用资源对象的服务状态数据是由所述可用资源对象对应的代理程序上报的,所述可用资源对象的服务状态数据用于表示所述可用资源对象是否能够为所述目标业务的运行提供支持;所述处理单元503还用于:若所述可用资源对象能够为所述目标业务的运行提供支持,则将所述可用资源对象作为候选资源对象并添加至候选资源对象集合中。
在一个实施例中,所述接收单元501用于接收并存储所述可用资源对象对应的代理程序上报的监测服务注册信息,所述监测服务注册信息包括所述可用资源对象的标识信息和所述可用资源的连接数据。
在一个实施例中,候选资源对象集合中包括多个候选资源对象;所述目标资源对象为所述候选资源对象集合中的任意一个候选资源对象;所述目标资源对象的运行数据满足资源调度条件,包括:根据所述目标资源对象的运行数据确定所述目标资源对象的调度参考值;若所述目标资源对象的调度参考值为所述候选资源对象集合中所有候选资源对象的调度参考值中的最大值,则所述目标资源对象的运行数据满足资源调度条件。
在一个实施例中,,所述目标业务的参与者的数量为预设数量;所述目标资源对象的运行数据包括所述目标资源对象正在处理的所述目标业务的数量;所述目标资源对象的运行数据满足资源调度条件,包括:若所述目标资源对象正在处理的所述目标业务的数量为所述候选资源对象集合中所有候选资源对象正在处理的所述目标业务的数量中的最小值,则确定所述目标资源对象的运行数据满足资源调度条件。
在一个实施例中,所述处理单元503在调度所述目标资源对象处理所述目标业务时,执行如下操作:根据所述目标资源对象的标识信息获取所述目标资源对象的连接数据;根据所述连接数据建立所述目标业务与所述目标资源对象之间的连接,以采用所述目标资源对象运行的资源数据来支持所述目标业务的运行。
在一个实施例中,所述接收单元501在接收业务请求时,执行如下操作:接收应用服务器发送的业务请求,所述业务请求是由终端向所述应用服务器发起的。所述目标资源对象的连接数据包括所述目标资源对象的网络地址和所述目标资源对象的网络接口,所述处理单元503在根据所述连接数据建立所述目标业务与所述目标资源对象之间的连接时,执行如下操作:将所述目标资源对象的网络地址和所述目标资源对象的网络接口发送给所述应用服务器,以由所述应用服务器将所述网络地址和网络接口发送给所述终端,以使得所述终端通过所述网络接口建立所述目标业务与所述网络地址之间的连接。
在一个实施例中,所述业务处理装置还包括发送单元505,所述发送单元505用于向所述目标资源对象对应的代理程序发送服务状态检测指令,所述服务状态检测指令用于指示所述目标资源对象对应的代理程序检测所述目标资源对象的服务状态,得到服务状态数据;所述接收单元501,还用于接收所述目标资源对象对应的代理程序返回的所述目标资源对象的服务状态数据。
根据本发明的一个实施例,图2和图3所示的业务方法所涉及业务发起者终端执行的各个步骤可以是由图5所示的业务处理装置中的各个单元来执行的。例如,图2所述的步骤S201可由图5中所述的业务处理装置中的接收单元501来执行,步骤S202和步骤S203可由图5中所述的业务处理装置中获取单元502来执行,步骤S204可由图5所示的业务处理装置中的处理单元503来执行;又如,图3中所示的步骤S301可由图5所示的业务处理装置中的接收单元501来执行,步骤S302、步骤S304以及步骤S307可由图5所示的业务处理装置中的获取单元502来执行,步骤S303可由图5所示的业务处理装置中的获取单元502和处理单元503来执行,步骤S305和步骤S306可由图5所示的业务处理装置中的处理单元503来执行。
根据本发明的另一个实施例,图5所示的业务处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于业务处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图5中所示的业务处理装置,以及来实现本发明实施例业务处理方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本发明实施例中,当接收到终端发送的业务请求时,根据所述请求的目标业务的标识获取目标资源对象以及获取目标资源对象的运行数据,目标资源对应的运行数据是由目标资源对象对应的代理程序上报的;进一步的,判断目标资源对象的运行数据是否满足资源调度条件,在所述目标资源对象满足资源调度条件,则调度目标资源对象处理目标业务。在上述业务处理过程中,由于目标资源对象中嵌入一个对应的代理程序,该代理程序可以在目标资源对象工作过程中,抓取目标资源对象产生的运行数据并将运行数据上报给服务器,以便于服务器可以根据运行数据对目标资源对象进行调度,实现了目标资源对象与服务器之间的交互,能够较好的调度资源对象来执行所请求的业务。
基于上述实施例以及装置实施例的描述,本发明实施例还提供了一种服务器,对应于前述的控制管理服务器,参考图6为本发明实施例提供的一种服务器的结构示意图。如图6所示,该服务器至少6包括处理器601、输入接口602、输出接口603以及计算机存储介质604。其中,服务器内的处理器601、输入接口602、输出接口603以及计算机存储介质604可通过总线或其他方式连接。
计算机存储介质604可以存储在服务器的存储器中,所述计算机存储介质604用于存储计算机程序,所述计算机程序包括程序指令,所述处理器601用于执行所述计算机存储介质604存储的程序指令。处理器801(或称CPU(Central Processing Unit,中央处理器))是服务器的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本发明实施例所述的处理器601可用于执行:接收业务请求,所述业务请求包括所请求的目标业务的标识;根据所述目标业务的标识获取目标资源对象,所述目标资源对象用于支持所述目标业务的运行;获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序上报的;若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。
本发明实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是服务器中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括服务器中的内置存储介质,当然也可以包括服务器所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了服务器的操作系统。并且,在该存储空间中还存放了适于被处理器601加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器601加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关服务更新实施例中的方法的相应步骤;具体实现中,计算机存储介质中的一条或多条指令由处理器601加载并执行如下步骤:接收业务请求,所述业务请求包括所请求的目标业务的标识;根据所述目标业务的标识获取目标资源对象,所述目标资源对象用于支持所述目标业务的运行;获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序上报的;若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。
在一个实施例中,所述目标资源对象包括资源数据,所述处理器601还用于:当检测到所述目标资源对象运行所述目标资源对象包括的资源数据时,同步运行所述代理程序,所述代理程序用于捕获在所述目标资源对象运行所述资源数据的过程中产生的运行数据。
在一个实施例中,所述处理器601还用于:根据所述目标业务的标识获取所述目标业务对应的可用资源对象;获取所述可用资源对象的服务状态数据,所述可用资源对象的服务状态数据是由所述可用资源对象对应的代理程序上报的,所述可用资源对象的服务状态数据用于表示所述可用资源对象是否能够为所述目标业务的运行提供支持;若所述可用资源对象能够为所述目标业务的运行提供支持,则将所述可用资源对象作为候选资源对象并添加至候选资源对象集合中。
在一个实施例中,所述获取所述可用资源对象的服务状态数据之前,所述处理器601还用于:接收并存储所述可用资源对象对应的代理程序上报的监测服务注册信息,所述监测服务注册信息包括所述可用资源对象的标识信息和所述可用资源的连接数据。
在一个实施例中,所述候选资源对象集合中包括多个候选资源对象;所述目标资源对象为所述候选资源对象集合中的任意一个候选资源对象;所述目标资源对象的运行数据满足资源调度条件,包括:根据所述目标资源对象的运行数据确定所述目标资源对象的调度参考值;若所述目标资源对象的调度参考值为所述候选资源对象集合中所有候选资源对象的调度参考值中的最大值,则所述目标资源对象的运行数据满足资源调度条件。
在一个实施例中,所述目标业务的参与者的数量为预设数量;所述目标资源对象的运行数据包括所述目标资源对象正在处理的所述目标业务的数量;所述目标资源对象的运行数据满足资源调度条件,包括:若所述目标资源对象正在处理的所述目标业务的数量为所述候选资源对象集合中所有候选资源对象正在处理的所述目标业务的数量中的最小值,则确定所述目标资源对象的运行数据满足资源调度条件。
在一个实施例中,所述处理器601在调度所述目标资源对象处理所述目标业务时,执行如下操作:根据所述目标资源对象的标识信息获取所述目标资源对象的连接数据;根据所述连接数据建立所述目标业务与所述目标资源对象之间的连接,以采用所述目标资源对象运行的资源数据来支持所述目标业务的运行。
在一个实施例中,所述处理器601在接收业务请求时,执行如下操作:接收应用服务器发送的业务请求,所述业务请求是由终端向所述应用服务器发起的;所述目标资源对象的连接数据包括所述目标资源对象的网络地址和所述目标资源对象的网络接口,所述处理器601在根据所述连接数据建立所述目标业务与所述目标资源对象之间的连接时,执行如下操作:将所述目标资源对象的网络地址和所述目标资源对象的网络接口发送给所述应用服务器,以由所述应用服务器将所述网络地址和网络接口发送给终端,以使得所述终端通过所述网络接口建立所述目标业务与所述网络地址之间的连接。
在一个实施例中,所述处理器601还用于执行:向所述目标资源对象对应的代理程序发送服务状态检测指令,所述服务状态检测指令用于指示所述目标资源对象对应的代理程序检测所述目标资源对象的服务状态,得到服务状态数据;接收所述目标资源对象对应的代理程序返回的所述目标资源对象的服务状态数据。
本发明实施例中,当接收到终端发送的业务请求时,根据所述请求的目标业务的标识获取目标资源对象以及获取目标资源对象的运行数据,目标资源对应的运行数据是由目标资源对象对应的代理程序上报的;进一步的,判断目标资源对象的运行数据是否满足资源调度条件,在所述目标资源对象满足资源调度条件,则调度目标资源对象处理目标业务。在上述业务处理过程中,由于目标资源对象中嵌入一个对应的代理程序,该代理程序可以在目标资源对象工作过程中,抓取目标资源对象产生的运行数据并将运行数据上报给服务器,以便于服务器可以根据运行数据对目标资源对象进行调度,实现了目标资源对象与服务器之间的交互,能够较好的调度资源对象来执行所请求的业务。
以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (12)

1.一种业务处理方法,其特征在于,应用于服务管理系统,所述服务管理系统中包括容器集群管理系统,所述容器集群管理系统包括至少一个服务节点,每个所述服务节点中包括至少一个裸pod,每个所述裸pod中均部署有各自对应的代理程序;每个所述裸pod上运行一个或多个容器,容器中包括一个或多个应用程序的资源数据;裸pod对应的代理程序随着裸pod包括的容器中的资源数据的运行而运行,且代理程序在运行过程中抓取并上报相应裸pod在运行其内的资源数据过程中产生的运行数据;所述方法包括:
接收业务请求,所述业务请求包括所请求的目标业务的标识;
根据所述目标业务的标识获取目标资源对象,所述目标资源对象为所述服务管理系统中的任一个裸pod;所述目标资源对象用于支持所述目标业务的运行;
获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序在运行过程中,通过调用所述目标业务的业务管理方所配置的数据监测脚本抓取到并上报的;
若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到所述目标资源对象运行所述目标资源对象包括的资源数据时,同步运行所述目标资源对象对应的代理程序,所述目标资源对象对应的代理程序用于捕获在所述目标资源对象运行其内的资源数据的过程中产生的运行数据。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述目标业务的标识获取所述目标业务对应的可用资源对象;
获取所述可用资源对象的服务状态数据,所述可用资源对象的服务状态数据是由所述可用资源对象对应的代理程序上报的,所述可用资源对象的服务状态数据用于表示所述可用资源对象是否能够为所述目标业务的运行提供支持;
若所述可用资源对象能够为所述目标业务的运行提供支持,则将所述可用资源对象作为候选资源对象并添加至候选资源对象集合中。
4.如权利要求3所述的方法,其特征在于,所述获取所述可用资源对象的服务状态数据之前,所述方法还包括:
接收并存储所述可用资源对象对应的代理程序上报的监测服务注册信息,所述监测服务注册信息包括所述可用资源对象的标识信息和所述可用资源的连接数据。
5.如权利要求3所述的方法,其特征在于,所述候选资源对象集合中包括多个候选资源对象;所述目标资源对象为所述候选资源对象集合中的任意一个候选资源对象;
所述目标资源对象的运行数据满足资源调度条件,包括:
根据所述目标资源对象的运行数据确定所述目标资源对象的调度参考值;
若所述目标资源对象的调度参考值为所述候选资源对象集合中所有候选资源对象的调度参考值中的最大值,则所述目标资源对象的运行数据满足资源调度条件。
6.如权利要求5所述的方法,其特征在于,所述目标业务的参与者的数量为预设数量;所述目标资源对象的运行数据包括所述目标资源对象正在处理的所述目标业务的数量;
所述目标资源对象的运行数据满足资源调度条件,包括:若所述目标资源对象正在处理的所述目标业务的数量为所述候选资源对象集合中所有候选资源对象正在处理的所述目标业务的数量中的最小值,则确定所述目标资源对象的运行数据满足资源调度条件。
7.如权利要求4所述的方法,其特征在于,所述调度所述目标资源对象处理所述目标业务,包括:
根据所述目标资源对象的标识信息获取所述目标资源对象的连接数据;
根据所述连接数据建立所述目标业务与所述目标资源对象之间的连接,以采用所述目标资源对象运行的资源数据来支持所述目标业务的运行。
8.如权利要求7所述的方法,其特征在于,所述接收业务请求,包括:
接收应用服务器发送的业务请求,所述业务请求是由终端向所述应用服务器发起的;
所述目标资源对象的连接数据包括所述目标资源对象的网络地址和所述目标资源对象的网络接口,则所述根据所述连接数据建立所述目标业务与所述目标资源对象之间的连接,包括:
将所述目标资源对象的网络地址和所述目标资源对象的网络接口发送给所述应用服务器,以由所述应用服务器将所述网络地址和所述网络接口发送给所述终端,以使得所述终端通过所述网络接口建立与所述网络地址之间的连接。
9.如权利要求3所述的方法,其特征在于,所述方法还包括:
向所述目标资源对象对应的代理程序发送服务状态检测指令,所述服务状态检测指令用于指示所述目标资源对象对应的代理程序检测所述目标资源对象的服务状态,得到服务状态数据;
接收所述目标资源对象对应的代理程序返回的所述目标资源对象的服务状态数据。
10.一种业务处理装置,其特征在于,所述业务处理装置配置于服务管理系统中;所述服务管理系统中包括容器集群管理系统,所述容器集群管理系统包括至少一个服务节点,每个所述服务节点中包括至少一个裸pod,每个所述裸pod中均部署有各自对应的代理程序;每个所述裸pod上运行一个或多个容器,容器中包括一个或多个应用程序的资源数据;裸pod对应的代理程序随着裸pod包括的容器中的资源数据的运行而运行,且代理程序在运行过程中抓取并上报相应裸pod在运行其内的资源数据过程中产生的运行数据;所述装置包括:
接收单元,用于接收业务请求,所述业务请求包括所请求的目标业务的标识;
获取单元,用于根据所述目标业务的标识获取目标资源对象,所述目标资源对象为所述服务管理系统中的任一个裸pod;所述目标资源对象用于支持所述目标业务的运行;
所述获取单元,还用于获取所述目标资源对象的运行数据,所述目标资源对象的运行数据是由所述目标资源对象对应的代理程序在运行过程中,通过调用所述目标业务的业务管理方所配置的数据监测脚本抓取到并上报的;
处理单元,用于若所述目标资源对象的运行数据满足资源调度条件,则调度所述目标资源对象处理所述目标业务。
11.一种服务器,其特征在于,包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-9任一项所述的业务处理方法。
12.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行如权利要求1-9任一项所述的业务处理方法。
CN201911079353.4A 2019-11-06 2019-11-06 业务处理方法、装置、服务器及存储介质 Active CN111176803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911079353.4A CN111176803B (zh) 2019-11-06 2019-11-06 业务处理方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911079353.4A CN111176803B (zh) 2019-11-06 2019-11-06 业务处理方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN111176803A CN111176803A (zh) 2020-05-19
CN111176803B true CN111176803B (zh) 2024-03-29

Family

ID=70651879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911079353.4A Active CN111176803B (zh) 2019-11-06 2019-11-06 业务处理方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN111176803B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111970541A (zh) * 2020-06-30 2020-11-20 视联动力信息技术股份有限公司 一种数据传输方法、装置、终端设备和存储介质
CN111796858B (zh) * 2020-07-07 2024-03-22 金蝶软件(中国)有限公司 Kubernetes集群内部应用程序访问检测的方法、系统及相关设备
CN114168203B (zh) * 2020-09-10 2024-02-13 成都鼎桥通信技术有限公司 双系统运行状态控制方法、装置和电子设备
CN112101994A (zh) * 2020-09-11 2020-12-18 广州华多网络科技有限公司 会员权益管理方法、装置、计算机设备和可读存储介质
CN112468580A (zh) * 2020-11-25 2021-03-09 政采云有限公司 一种业务服务的调用方法、装置、设备及存储介质
CN113031874B (zh) * 2021-03-26 2022-05-13 网易(杭州)网络有限公司 基于Kubernetes集群的缓存处理方法、装置、设备及存储介质
CN113452758A (zh) * 2021-06-04 2021-09-28 中国联合网络通信集团有限公司 一种业务访问方法及装置
CN114936898B (zh) * 2022-05-16 2023-04-18 广州高专资讯科技有限公司 一种基于现货供应的管理系统、方法、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017045424A1 (zh) * 2015-09-18 2017-03-23 乐视控股(北京)有限公司 一种应用程序部署系统及部署方法
CN108737270A (zh) * 2018-05-07 2018-11-02 北京京东尚科信息技术有限公司 一种服务器集群的资源管理方法和装置
CN109150608A (zh) * 2018-08-22 2019-01-04 苏州思必驰信息科技有限公司 用于语音对话平台的接口服务升级方法及系统
CN110333939A (zh) * 2019-06-17 2019-10-15 腾讯科技(成都)有限公司 任务混合调度方法、装置、调度服务器及资源服务器
CN110389836A (zh) * 2019-07-17 2019-10-29 腾讯科技(深圳)有限公司 一种多集群管理方法、装置、服务器及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017045424A1 (zh) * 2015-09-18 2017-03-23 乐视控股(北京)有限公司 一种应用程序部署系统及部署方法
CN108737270A (zh) * 2018-05-07 2018-11-02 北京京东尚科信息技术有限公司 一种服务器集群的资源管理方法和装置
CN109150608A (zh) * 2018-08-22 2019-01-04 苏州思必驰信息科技有限公司 用于语音对话平台的接口服务升级方法及系统
CN110333939A (zh) * 2019-06-17 2019-10-15 腾讯科技(成都)有限公司 任务混合调度方法、装置、调度服务器及资源服务器
CN110389836A (zh) * 2019-07-17 2019-10-29 腾讯科技(深圳)有限公司 一种多集群管理方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN111176803A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN111176803B (zh) 业务处理方法、装置、服务器及存储介质
US11122067B2 (en) Methods for detecting and mitigating malicious network behavior and devices thereof
US9836317B2 (en) Controlling virtualization resource utilization based on network state
CN106302565B (zh) 业务服务器的调度方法及系统
CN107872402B (zh) 全局流量调度的方法、装置及电子设备
US10440136B2 (en) Method and system for resource scheduling
CN104219316A (zh) 一种分布式系统中的调用请求处理方法及装置
EP2985730A1 (en) Method and device for partially-upgrading
US10491452B2 (en) Method and system for clustered real-time correlation of trace data fragments describing distributed transaction executions
US20110173319A1 (en) Apparatus and method for operating server using virtualization technique
CN112130996A (zh) 数据监控控制系统、方法、装置、电子设备和存储介质
CN111193716A (zh) 业务数据调用方法、装置、计算机设备和存储介质
CN114338650A (zh) 文件传输方法、装置、电子设备及可读存储介质
CN107819754B (zh) 一种防劫持方法、监控服务器、终端及系统
CN114401258A (zh) 短信发送方法、装置、电子装置和存储介质
CN111177160B (zh) 服务更新方法、装置、服务器及介质
CN112416594A (zh) 一种微服务分配方法、电子设备和计算机存储介质
CN112448978B (zh) 数据管理方法及系统
CN110321287A (zh) 一种服务器功能的检测方法、装置及电子设备
US11360871B1 (en) Automatic optimization and hardening of application images
CN114205150A (zh) 容器环境的入侵防御方法及装置、电子设备、存储介质
KR101630088B1 (ko) 가상머신의 라이프사이클 모니터링 방법 및 그 장치
US9479579B2 (en) Grouping processing method and system
US11226887B1 (en) User code deployment across compute resource partitions
CN113965576B (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