CN110955501A - 服务请求处理方法、装置、电子设备及可读介质 - Google Patents
服务请求处理方法、装置、电子设备及可读介质 Download PDFInfo
- Publication number
- CN110955501A CN110955501A CN201811130310.XA CN201811130310A CN110955501A CN 110955501 A CN110955501 A CN 110955501A CN 201811130310 A CN201811130310 A CN 201811130310A CN 110955501 A CN110955501 A CN 110955501A
- Authority
- CN
- China
- Prior art keywords
- service
- service instance
- determining
- scheduler
- task request
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000004422 calculation algorithm Methods 0.000 claims description 43
- 238000005070 sampling Methods 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 10
- 238000013468 resource allocation Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 39
- 238000010586 diagram Methods 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 14
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000287127 Passeridae Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Abstract
本申请提供一种服务请求处理方法、装置、电子设备及可读介质,该方法包括:获取来自于函数服务的任务请求;若当前多个第一服务实例均不可用,从多个调度器中确定目标调度器;通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例;以及通过所述第三服务实例处理所述任务请求。本申请的服务请求处理方法、装置、电子设备及可读介质,能够满足大规模调度函数服务的高吞吐量、低延迟以及资源自动伸缩的需求。
Description
技术领域
本申请涉及互联网领域,尤其涉及一种服务请求处理方法、装置、电子设备及计算机可读介质。
背景技术
函数服务(FaaS-Function as a Service)是一种新的云计算模式,它提供基于容器化技术,微服务技术和事件触发机制的计算服务。应用开发者通过简单的函数定义应用服务的基本逻辑,函数平台自动实现应用服务的快速搭建部署,容器资源的按需占用和按量伸缩,从而极大地提高应用开发者的效率和平台的资源利用率。
函数平台的一个重要组成部分是资源调度器。资源调度器根据用户服务请求的数量动态地分配容器资源和启动服务实例。传统的调度器一般利用中央或者两层调度器来分配资源,包括Kubernetes,Mesos,YARN,Swarm。更新的调度器,例如Omega,Borg使用多个并发的独立调度器。这两类调度器需要整个集群的全局资源信息来进行调度决策。还有一类调度器使用随机算法,从整个集群中随机选取一小部分机器,从中根据适当的标准挑选最合适的机器来分配容器资源和运行函数服务实例,例如Sparrow和Tarcil。
函数服务有几个特点:(1)事件或消息驱动,提交新的消息或事件可能触发资源调度请求(比如创建新实例)。消息的数量和规模通常非常大,因此对资源调度器的吞吐量提出很高要求。(2)函数服务执行单个请求的时间一般很短,从几十毫秒到几十秒,所以调度器必须很快地分配资源,否则会影响服务的性能。(3)函数服务的请求一般非常动态,相应的实例数也需要动态变化,因此调度器要能够自动地收扩容。(4)容器创建经常需要花费一定时间,影响服务性能,为提高服务性能,必须优化容器和实例的创建时间。
目前已有的调度器不能满足以上函数服务的调度需求,其具体表现如下:
(1)中央或两层调度器的并发度不够,调度的吞吐量满足不了大量函数服务请求所触发的资源调度请求。
(2)当前的并发调度器需要集群的所有机器的资源信息来进行调度,导致调度的延迟大,影响函数服务的性能。
(3)随机采样的调度器主要用于传统的在线服务和离线作业,没有考虑如何优化函数服务和容器调度,也不提供资源自动伸缩的功能。
发明内容
有鉴于此,本申请提供一种服务请求处理方法、装置、电子设备及计算机可读介质,能够满足大规模调度函数服务的高吞吐量、低延迟以及资源自动伸缩的需求。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的第一方面,提出一种服务请求处理方法,该方法包括:获取来自于函数服务的任务请求;若当前多个第一服务实例均不可用,从多个调度器中确定目标调度器;通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例;以及通过所述第三服务实例处理所述任务请求。
在本申请的一种示例性实施例中,还包括:通过资源表实时储存空闲资源、第一服务实例以及第二服务实例状态;其中,所述第一服务实例、第二服务实例状态包括:等待、运行、以及终止。
在本申请的一种示例性实施例中,还包括:在当前的所述多个第一服务实例中的部分第一服务实例可用的情况下,为所述任务请求确定第四服务实例;以及通过第四服务实例处理所述任务请求。
在本申请的一种示例性实施例中,为所述任务请求确定第四服务实例包括:通过所述资源表以及资源分配算法为所述任务请求确定所述第四服务实例。
在本申请的一种示例性实施例中,从多个调度器中确定目标调度器包括:通过负载平衡原则从多个调度器中确定所述目标调度器。
在本申请的一种示例性实施例中,通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例包括:所述目标调度器根据采样算法确定多个第二服务实例;以及根据所述任务请求在多个第二服务实例中为所述任务请求确定第三服务实例。
在本申请的一种示例性实施例中,还包括:实时获取所述资源表;根据所述资源表判断所述第三服务实例是否冲突;以及在所述第三服务实例冲突的情况下,通过所述目标调度器重新确定第三服务实例。
在本申请的一种示例性实施例中,所述目标调度器根据采样算法确定多个第二服务实例包括:所述目标调度器根据随机采样算法确定目标物理机;以及在所述目标物理机上建立多个第二服务实例。
在本申请的一种示例性实施例中,所述目标调度器根据采样算法确定目标物理机包括:所述目标调度器根据第一参数随机确定多个待选物理机;以及在多个待选物理机中根据第一条件确定目标物理机。
在本申请的一种示例性实施例中,还包括:所述第一服务实例与第二服务实例在运行状态中,若空闲超过第一时间阈值,则所述第一服务实例与第二服务实例由运行状态转变为等待状态;以及所述第一服务实例与第二服务实例在等待状态中,若空闲超过第二时间阈值,则所述第一服务实例与第二服务实例由等待状态转变为终止状态。
在本申请的一种示例性实施例中,所述任务请求包括函数服务请求和容器服务请求。
根据本申请实施例的第二方面,提出一种服务请求处理装置,该装置包括:请求模块,用于获取来自于函数服务的任务请求;第一判断模块,用于若当前的多个第一服务实例均不可用,从多个调度器中确定目标调度器;第三服务实例模块,用于通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例;以及第一任务处理模块,用于通过所述第三服务实例处理所述任务请求。
在本申请的一种示例性实施例中,还包括:第二判断模块,用于在当前的所述多个第一服务实例中的部分第一服务实例可用的情况下,为所述任务请求确定第四服务实例;以及第二任务处理模块,用于通过第四服务实例处理所述任务请求。
根据本申请实施例的第三方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的服务请求处理方法。
根据本申请实施例的第四方面,提出一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述任一项所述的服务请求处理方法。
根据本申请的服务请求处理方法、装置、电子设备及计算机可读介质,能够满足大规模调度函数服务的高吞吐量、低延迟以及资源自动伸缩的需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种服务请求处理方法及装置的系统框图。
图2是根据一示例性实施例示出的一种服务请求处理方法的流程图。
图3是根据一示例性实施例示出的一种服务请求处理方法的流程图。
图4是根据一示例性实施例示出的一种服务请求处理方法的状态转换图。
图5是根据另一示例性实施例示出的一种服务请求处理方法的架构图。
图6是根据另一示例性实施例示出的一种服务请求处理方法的示意图。
图7是根据另一示例性实施例示出的一种服务请求处理方法的流程图。
图8是根据另一示例性实施例示出的一种服务请求处理方法的流程图。
图9是根据一示例性实施例示出的一种服务请求处理装置的框图。
图10是根据一示例性实施例示出的一种用于服务请求处理的电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图仅为本发明的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图对本发明示例实施方式进行详细说明。
图1是根据一示例性实施例示出的一种服务请求处理方法及装置的系统框图。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所进行操作的服务请求处理系统提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的服务请求等数据进行分析等处理,并将处理结果(例如服务实例的地址--仅为示例)反馈给终端设备。
服务器105可例如获取来自于函数服务的任务请求;服务器105可例如若当前的多个第一服务实例均不可用,从多个调度器中确定目标调度器;服务器105可例如通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例;服务器105可例如通过所述第三服务实例处理所述任务请求。
服务器105可以是一个实体的服务器,还可例如为多个服务器组成,服务器105中的一部分可例如作为本申请中的服务请求任务提交系统,用于提交应用请求;以及服务器105中的一部分还可例如作为本申请中的服务请求处理系统,用于获取来自于函数服务的任务请求;若当前多个第一服务实例均不可用,从多个调度器中确定目标调度器;通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例;以及通过所述第三服务实例处理所述任务请求。
需要说明的是,本申请实施例所提供的服务请求处理方法可以由服务器105执行,相应地,服务请求处理装置可以设置于服务器105中。而提供给用户用于提交服务请求任务与获取服务请求处理结果的请求端一般位于终端设备101、102、103中。
图2是根据一示例性实施例示出的一种服务请求处理方法的流程图。根据图2示出的服务请求处理方法,可以满足大规模调度函数服务的高吞吐量、低延迟以及资源自动伸缩的需求。下面,将参照图2,对本申请示例性实施例中的服务请求处理方法进行说明。
在步骤S210中,获取来自于函数服务的任务请求。其中,任务请求可提交到调度器(Dispatcher),调度器负责转发任务请求到应用实例或调度器。
根据示例实施例,所述任务请求包括函数服务请求和容器服务请求。其中,函数服务为基于事件驱动的函数托管计算服务。容器服务为提供高性能可伸缩的容器应用管理服务。
根据示例实施例,还包括:通过资源表实时储存空闲资源、第一服务实例以及第二服务实例状态;其中,第一服务实例、第二服务实例状态包括:等待、运行、以及终止。服务实例的状态转换图可如图4所示。当第一服务实例与第二服务实例在运行状态中,若空闲超过第一时间阈值T1,则第一服务实例与第二服务实例由运行状态转变为等待状态;当第一服务实例与第二服务实例在等待状态中,若空闲超过第二时间阈值T2,则所述第一服务实例与第二服务实例由等待状态转变为终止状态。其中,T1、T2可根据需要动态配置和调整。例如,当一个新容器创建,启动和运行一个服务实例后,该服务实例进入等待状态;等待状态如果有请求进来,该服务实例进入运行状态;如果当前服务实例在运行状态一定时间内没有处理请求,该服务实例进入等待状态;等待状态在一段时间内没有请求激活它,该服务实例进入终止状态,它对应的容器将被删除。
其中,可建立一个资源表的主备份,并在每个调度器中存储一个资源表的从备份。每个物理机器的资源状态可通过监控器(Monitor)监控,并由监控器周期性地发送给主资源表,调度器通过和主资源表同步来更新其资源表的从备份。
在步骤S220中,若当前多个第一服务实例均不可用,从多个调度器中确定目标调度器。其中,如果当前的多个第一服务实例没有处于运行或者等待状态,或者当前的多个第一服务实例已经达到它们的最大容量时,当前的多个第一服务实例均不可用,此时可由调度器请求自动伸缩(Auto-scaling)发送申请新的服务实例的请求。例如,可通过监控器将服务实例的状态变化发送给调度器,以使调度器可以相应地转发不同数量的服务请求给不同的服务实例。
其中,可通过负载平衡原则从多个调度器中确定所述目标调度器,例如,选择负载最少的调度器来处理自动伸缩(Auto-scaling)的请求。
根据示例实施例,在当前的所述多个第一服务实例中的部分第一服务实例可用的情况下,可为所述任务请求确定第四服务实例;并通过第四服务实例处理所述任务请求。例如,如果当前的多个第一服务实例有处于运行或者等待状态时,可由调度器将任务请求转发至处于运行或等待状态的服务实例。在一个实施例中,可通过资源表以及资源分配算法为所述任务请求确定第四服务实例。其中,资源分配算法可例如为贪心算法、负载均衡算法等。贪心算法又称贪婪算法,是指在对问题求解时,总是做出在当前看来最佳的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
在步骤S230中,通过目标调度器在多个第二服务实例中为任务请求确定第三服务实例。其中,目标调度器可根据采样算法确定多个第二服务实例,并根据任务请求在在多个第二服务实例中为任务请求确定第三服务实例。其中,目标调度器根据采样算法确定多个第二服务实例包括:目标调度器根据随机采样算法确定目标物理机;以及在目标物理机上建立多个第二服务实例。在目标调度器根据随机采样算法确定目标物理机时,可由目标调度器根据第一参数随机确定多个待选物理机;以及在多个待选物理机中根据第一条件确定目标物理机。其中,本发明的技术方案除采用随机采样算法确定目标物理机外,还可选择其他不需要读取全部资源信息的采样算法确定目标物理机,如顺序采样算法。其中,第一参数可根据样本大小确定,也可随机确定,例如可为2;第一条件可例如选择具有足够资源的物理机,也可选择利用率最低的物理机,本发明对此不作特殊限定。
根据示例实施例,步骤S230还可包括如下步骤:实时获取资源表;根据资源表判断第三服务实例是否冲突;以及在所述第三服务实例冲突的情况下,通过所述目标调度器重新确定第三服务实例。
在步骤S240中,通过所述第三服务实例处理所述任务请求。
根据本申请的服务请求处理方法,通过使用多个调度器来调度服务请求,并通过采样算法确定目标物理机,以及通过资源分配算法确定服务实例,能够满足大规模调度函数服务的高吞吐量、低延迟以及资源自动伸缩的需求。
图3是根据一示例性实施例示出的一种服务请求处理方法的流程图。参照图3,服务请求处理方法可以包括:
步骤S310,实时获取所述资源表。其中,可通过监控器获取资源表的从备份,该从备份可通过与主备份的同步进行更新,更新步骤可在调度器实时调度决策前进行。
步骤S320,根据所述资源表判断所述第三服务实例是否冲突。其中,如果当前调度器的决策和其他调度器的决策有冲突,例如均选择了同一服务实例,且该服务实例的容量无法满足上述两个调度决策中的任务请求时,认为所述第三服务实例具有冲突。
步骤S330,在所述第三服务实例冲突的情况下,通过所述目标调度器重新确定第三服务实例。该实施例可保证多个调度器不成为瓶颈,以提高并发度。
图5是根据另一示例性实施例示出的一种服务请求处理方法的架构图。参照图5,服务请求处理方法可以包括如下几个关键元素。
(1)调度器(Dispatcher):一个函数服务的所有请求提交到调度器,调度器负责转发这些请求到函数服务的多个应用实例。如果当前的应用实例不能满足需要,调度器请求自动伸缩(Auto Scaling)向调度器申请容器资源和启动额外的服务实例。
(2)自动伸缩(Auto Scaling):Auto Scaling根据调度器的要求向调度器申请容器资源和启动函数服务实例。
(3)资源状态表(Resource State):物理机的容器集群的资源使用情况保存在资源状态表。整个系统有一个主备份,每个调度代理Scheduling Agent有一个从备份,调度代理每次提交资源请求前和主备份同步资源状态信息和检测冲突。
(4)调度程序(Scheduler):调度器通过负载平衡选择一个负载最少的调度代理来处理自动伸缩(Auto-scaling)的请求。每个调度代理处理资源调度请求时,随机从所有物理机中选出几个,然后根据函数服务的具体要求,挑选一个有足够资源的物理机来启动新的容器和服务实例。因为多个调度器并行地调度资源,可能发生冲突。
(5)监控器(Monitor):每个物理机上有一个Monitor。监控器监控物理机器上空闲的资源和每个服务实例的状态:运行,等待和终止。物理机的资源状态周期性地发送给主资源表。调度代理的资源从备份通过和主资源表同步来更新自己的资源状态表。监控器还负责把函数服务实例的状态变化通知调度器,调度器可据此相应地将不同数量的服务请求转发给不同的服务实例。
图6是根据另一示例性实施例示出的一种服务请求处理方法的架构图。参照图6,当Dispatcher接收到新的任务请求时,服务请求处理方法可以包括如下步骤:
步骤S610,判断处于运行状态的服务实例是否还有容量。如果是,执行步骤S620,否则执行步骤S630。
步骤S620,选择最接近最大容量的服务实例。其中,调度器可把请求转发给运行的服务实例。如果有多个运行的服务实例可以处理新请求,调度器可选择最忙的服务实例处理新任务请求,以便当请求不多时,其他的服务实例有机会进入等待状态,从而被终止和节省资源。
步骤S630,判断是否有处于等待状态的服务实例。如果是,执行步骤S640,否则执行步骤S650。
步骤S640,选择在等待状态最短的示例。例如,如果当前所有运行的服务实例已经处于最大吞吐量,但是还有服务实例处于等待状态,调度器把服务请求转发给处于等待状态的服务实例,从而激活它进入运行状态。如果有多个服务实例处于等待状态,调度器转发请求给处于等待状态最短的那个服务实例。这样让空闲更久的服务实例有机会进入终止状态。
步骤S650,申请创建新的服务实例。例如,如果没有服务实例处于运行或者等待状态,或者所有服务实例已经到达它们的最大容量,调度器请求自动伸缩(Auto Scaling)申请新实例。Auto Scaling向调度器申请新容器来启动额外的服务实例。
图7是根据另一示例性实施例示出的一种服务请求处理方法的示意图。参照图7,当收到新的服务实例请求时,每个调度器根据自己的资源表从备份和算法(例如随机采样算法、顺序采样算法)独立地找到一台有足够资源的物理机来创建新的函数服务。在提交和创建新的服务实例前,调度代理(Scheduling Agent)和主资源状态表同步信息。调度agent根据主资源表信息更新自己的从备份资源表的信息,如果即将分配的资源没变化或冲突,主资源表更新相应的信息,调度决策被接受,相应的容器被创建和新的服务实例被启动,通知调度器。调度器可以分发服务请求给这个新实例。如果主资源表的信息显示即将分配的资源已经被占用或者其他调度Agent也决定使用相同的资源,只有一个调度Agent的请求可以被接受。这可以根据优先级或者先来先到的原则,其他的调度Agent必须回退和重新调度。在大规模的容器平台上,发生冲突的机会并不大。
图8是根据另一示例性实施例示出的一种服务请求处理方法的流程图。参照图8,步骤S230中可以包括如下步骤:
步骤S810,读取资源状态表。其中,当一个调度Agent收到调度请求后,可首先读取其备份的资源状态表,根据资源状态表获取物理机器信息。
步骤S820,随机找出N台物理机器。其中,N可为根据样本大小随机配置的数目,例如N可为2,本发明对N的具体数值并不作特殊限定。
步骤S830,判断是否有满足资源要求的物理机。如果有,执行步骤S850,否则执行步骤S840。其中,如果抽样得到的机器都没有空闲资源,可采取增大样本大小(例如将N的值加倍)来寻找有足够资源的机器。
步骤S840,N=N*2。其中,还可以采用其他计算方法使N适当变大,本发明对此并不作特殊限定。
步骤S850,从候选机器中选出最合适的一台。其中,可选择具有足够资源的机器作为容器分配的候选机器。如果有超过一台候选机器,可以选择利用率最低的机器或者根据函数服务的其他要求(比如CPU类型等)来选择机器。
步骤S860,同步和执行。其中,每个调度器在提交和实施调度决策前和资源状态表的主备份进行同步,如果和其他调度器的决策有冲突,通过回退等方式解决冲突,其具体判断步骤可如图7所示。
根据本申请的服务请求处理方法,通过使用多个独立的并发调度器,并使用采样算法获取调度函数服务,以及采取基于状态转化的弹性调度方法,能够满足大规模调度函数服务的高吞吐量、低延迟以及资源自动伸缩的需求。综上,本申请的服务请求处理方法首先使用多个独立并行的调度器来满足大量的调度请求,以提高吞吐量;其次通过采样的方法(例如随机采样算法、顺序采样算法)快速地确定一组有空闲资源的服务器,以便调度器不需要读取整个集群资源状态和使用复杂算法,从而能够快速做出决策,极大地降低了延迟时间;最后通过状态渐进变化的方法(例如贪心算法)来自动调整函数服务实例的数量,从而实现弹性资源函数调度。
图9是根据一示例性实施例示出的一种服务请求处理装置的框图。参照图9,服务请求处理装置可以包括:请求模块910、第一判断模块920、第三服务实例模块930、以及第一任务模块940。
在服务请求处理装置中,请求模块910用于获取来自于函数服务的任务请求。其中,任务请求可提交到调度器,调度器负责转发任务请求到应用实例或调度器。
第一判断模块920用于若当前多个第一服务实例均不可用,从多个调度器中确定目标调度器。其中,如果当前的多个第一服务实例没有处于运行或者等待状态,或者当前的多个第一服务实例已经达到它们的最大容量时,当前的多个第一服务实例均不可用,此时可由调度器请求申请新的服务实例。例如,可通过监控器将服务实例的状态变化发送给调度器,以使调度器可以相应地转发不同数量的服务请求给不同的服务实例。
第三服务实例模块930用于通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例。其中,目标调度器可根据采样算法确定多个第二服务实例,并根据任务请求在在多个第二服务实例中为任务请求确定第三服务实例。其中,目标调度器根据采样算法确定多个第二服务实例包括:目标调度器根据随机采样算法确定目标物理机;以及在目标物理机上建立多个第二服务实例。在目标调度器根据采样算法确定目标物理机时,可由目标调度器根据第一参数随机确定多个待选物理机;以及在多个待选物理机中根据第一条件确定目标物理机。其中,本发明的技术方案除采用随机采样算法确定目标物理机外,还可选择其他不需要读取全部资源信息的采样算法确定目标物理机,例如顺序采样算法。其中,第一参数可根据样本大小确定,也可随机确定,例如可为2;第一条件可例如选择具有足够资源的物理机,也可选择利用率最低的物理机,本发明对此不作特殊限定。
第一任务模块940用于通过所述第三服务实例处理所述任务请求。
根据示例实施例,服务请求处理装置还可包括第二判断模块,用于在当前的所述多个第一服务实例中的部分第一服务实例可用的情况下,为所述任务请求确定第四服务实例;以及第二任务处理模块,用于通过第四服务实例处理所述任务请求。
根据本申请的服务请求处理装置,通过使用多个调度器来调度服务请求,并通过采样算法确定目标物理机,以及通过资源分配算法确定服务实例,能够满足大规模调度函数服务的高吞吐量、低延迟以及资源自动伸缩的需求。
图10是根据一示例性实施例示出的一种用于服务请求处理的电子设备的框图。
下面参照图10来描述根据本申请的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从储存部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。例如,中央处理单元1001可以执行如图2、图3、图5、图6、图7、图8中的一个或多个所示的步骤。
在RAM1003中,还存储有系统操作所需的各种程序和数据,例如资源状态表、服务实例等。CPU 1001、ROM 1002以及RAM1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括触摸屏、键盘等的输入部分1006;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分1007;包括闪存等的储存部分1008;以及包括诸如无线网卡、高速网卡等的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如半导体存储器、磁盘等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入储存部分1008。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本发明实施例的方法,例如图2、图3、图5、图6、图7、图8中的一个或多个所示的步骤。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其他实施例。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
应当理解的是,本发明并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (15)
1.一种服务请求处理方法,其特征在于,包括:
获取来自于函数服务的任务请求;
若当前多个第一服务实例均不可用,从多个调度器中确定目标调度器服务实例;
通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例;以及
通过所述第三服务实例处理所述任务请求。
2.如权利要求1所述的方法,其特征在于,还包括:
通过资源表实时储存空闲资源、第一服务实例以及第二服务实例状态;
其中,所述第一服务实例、第二服务实例状态包括:等待、运行、以及终止。
3.如权利要求1所述的方法,其特征在于,还包括:
在当前的所述多个第一服务实例中的部分第一服务实例可用的情况下,为所述任务请求确定第四服务实例;以及
通过第四服务实例处理所述任务请求。
4.如权利要求2或3所述的方法,其特征在于,为所述任务请求确定第四服务实例包括:
通过所述资源表以及资源分配算法为所述任务请求确定所述第四服务实例。
5.如权利要求2所述的方法,其特征在于,从多个调度器中确定目标调度器包括:
通过负载平衡原则从多个调度器中确定所述目标调度器。
6.如权利要求2所述的方法,其特征在于,通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例包括:
所述目标调度器根据采样算法确定多个第二服务实例;以及
根据所述任务请求在多个第二服务实例中为所述任务请求确定第三服务实例。
7.如权利要求6所述的方法,其特征在于,还包括:
实时获取所述资源表;
根据所述资源表判断所述第三服务实例是否冲突;以及
在所述第三服务实例冲突的情况下,通过所述目标调度器重新确定第三服务实例。
8.如权利要求6所述的方法,其特征在于,所述目标调度器根据采样算法确定多个第二服务实例包括:
所述目标调度器根据采样算法确定目标物理机;以及
在所述目标物理机上建立多个第二服务实例。
9.如权利要求8所述的方法,其特征在于,所述目标调度器根据采样算法确定目标物理机包括:
所述目标调度器根据第一参数随机确定多个待选物理机;以及
在多个待选物理机中根据第一条件确定目标物理机。
10.如权利要求2所述的方法,其特征在于,还包括:
所述第一服务实例与第二服务实例在运行状态中,若空闲超过第一时间阈值,则所述第一服务实例与第二服务实例由运行状态转变为等待状态;以及
所述第一服务实例与第二服务实例在等待状态中,若空闲超过第二时间阈值,则所述第一服务实例与第二服务实例由等待状态转变为终止状态。
11.如权利要求1所述的方法,其特征在于,所述任务请求包括:函数服务请求和容器服务请求。
12.一种服务请求处理装置,其特征在于,包括:
请求模块,用于获取来自于函数服务的任务请求;
第一判断模块,用于若当前多个第一服务实例均不可用,从多个调度器中确定目标调度器;
第三服务实例模块,用于通过所述目标调度器在多个第二服务实例中为所述任务请求确定第三服务实例;以及
第一任务处理模块,用于通过所述第三服务实例处理所述任务请求。
13.如权利要求12所述的装置,其特征在于,还包括:
第二判断模块,用于在当前的所述多个第一服务实例中的部分第一服务实例可用的情况下,为所述任务请求确定第四服务实例;以及
第二任务处理模块,用于通过第四服务实例处理所述任务请求。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811130310.XA CN110955501A (zh) | 2018-09-27 | 2018-09-27 | 服务请求处理方法、装置、电子设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811130310.XA CN110955501A (zh) | 2018-09-27 | 2018-09-27 | 服务请求处理方法、装置、电子设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110955501A true CN110955501A (zh) | 2020-04-03 |
Family
ID=69967963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811130310.XA Pending CN110955501A (zh) | 2018-09-27 | 2018-09-27 | 服务请求处理方法、装置、电子设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955501A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094158A (zh) * | 2021-03-15 | 2021-07-09 | 国政通科技有限公司 | 服务的驱动调用方法、调用装置、电子设备及存储介质 |
CN113176940A (zh) * | 2021-03-29 | 2021-07-27 | 新华三信息安全技术有限公司 | 一种数据流分流方法、装置以及网络设备 |
WO2022105504A1 (zh) * | 2020-11-18 | 2022-05-27 | 华为云计算技术有限公司 | 函数服务的调度方法、系统、计算设备和存储介质 |
CN115994022A (zh) * | 2023-03-17 | 2023-04-21 | 北京百度网讯科技有限公司 | 算法服务的调用方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461744A (zh) * | 2014-12-18 | 2015-03-25 | 曙光云计算技术有限公司 | 一种资源分配方法及装置 |
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
CN107968810A (zh) * | 2016-10-20 | 2018-04-27 | 阿里巴巴集团控股有限公司 | 一种服务器集群的资源调度方法、装置和系统 |
CN108206852A (zh) * | 2016-12-20 | 2018-06-26 | 杭州华为数字技术有限公司 | 一种微服务框架下的基于会话的服务实例管理方法及设备 |
CN108334396A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置、资源组的创建方法和装置 |
-
2018
- 2018-09-27 CN CN201811130310.XA patent/CN110955501A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
CN104461744A (zh) * | 2014-12-18 | 2015-03-25 | 曙光云计算技术有限公司 | 一种资源分配方法及装置 |
CN107968810A (zh) * | 2016-10-20 | 2018-04-27 | 阿里巴巴集团控股有限公司 | 一种服务器集群的资源调度方法、装置和系统 |
CN108206852A (zh) * | 2016-12-20 | 2018-06-26 | 杭州华为数字技术有限公司 | 一种微服务框架下的基于会话的服务实例管理方法及设备 |
CN108334396A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置、资源组的创建方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022105504A1 (zh) * | 2020-11-18 | 2022-05-27 | 华为云计算技术有限公司 | 函数服务的调度方法、系统、计算设备和存储介质 |
CN113094158A (zh) * | 2021-03-15 | 2021-07-09 | 国政通科技有限公司 | 服务的驱动调用方法、调用装置、电子设备及存储介质 |
CN113176940A (zh) * | 2021-03-29 | 2021-07-27 | 新华三信息安全技术有限公司 | 一种数据流分流方法、装置以及网络设备 |
CN115994022A (zh) * | 2023-03-17 | 2023-04-21 | 北京百度网讯科技有限公司 | 算法服务的调用方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110955501A (zh) | 服务请求处理方法、装置、电子设备及可读介质 | |
US7316017B1 (en) | System and method for allocatiing communications to processors and rescheduling processes in a multiprocessor system | |
CN109525410B (zh) | 分布式存储系统升级管理的方法、装置及分布式存储系统 | |
US20090165003A1 (en) | System and method for allocating communications to processors and rescheduling processes in a multiprocessor system | |
CN109343939B (zh) | 一种分布式集群及并行计算任务调度方法 | |
EP2254049A2 (en) | Job scheduling apparatus and job scheduling method | |
CN106462593B (zh) | 大规模并行处理数据库的系统和方法 | |
CN107832143B (zh) | 一种物理机资源的处理方法和装置 | |
CN108874549B (zh) | 资源复用方法、装置、终端和计算机可读存储介质 | |
CN106897299B (zh) | 一种数据库访问方法及装置 | |
CN106528288A (zh) | 一种资源管理方法、装置和系统 | |
US10606650B2 (en) | Methods and nodes for scheduling data processing | |
JP2014170363A (ja) | 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム | |
CN112286688A (zh) | 一种内存管理和使用方法、装置、设备和介质 | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN110175078B (zh) | 业务处理方法及装置 | |
CN103823712A (zh) | 一种多cpu虚拟机系统的数据流处理方法和装置 | |
CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN111835809A (zh) | 工单消息分配方法、装置、服务器及存储介质 | |
CN111355751A (zh) | 任务调度方法及装置 | |
CN116233022A (zh) | 一种作业调度方法、服务器及服务器集群 | |
CN116069500A (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 |