CN112835707A - 分布式系统负载调度方法、装置、计算机存储介质及设备 - Google Patents
分布式系统负载调度方法、装置、计算机存储介质及设备 Download PDFInfo
- Publication number
- CN112835707A CN112835707A CN201911165387.5A CN201911165387A CN112835707A CN 112835707 A CN112835707 A CN 112835707A CN 201911165387 A CN201911165387 A CN 201911165387A CN 112835707 A CN112835707 A CN 112835707A
- Authority
- CN
- China
- Prior art keywords
- service
- load
- service instance
- request
- request target
- 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
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
本发明提供一种分布式系统负载调度方法、装置、计算机存储介质及设备,所述方法包括:服务向服务注册中心系统注册服务实例;从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地;接收负载请求,并从所述负载请求中解析出请求目标;根据所述请求目标以及所述请求目标的状态计算选择出相应的所述服务实例;将所述负载请求转发至所述服务实例处。根据本发明实施例的分布式系统负载调度方法,解除了服务实施例必须对等的要求,降低了服务实现复杂度,减少服务资源损耗。
Description
技术领域
本发明涉及软件工程、大数据以及分布式系统负载调度和计算等技术领域,尤其涉及分布式系统负载调度方法、装置、计算机存储介质及电子设备。
背景技术
目前业界针对分布式系统负载调度通常使用以下方案:(1)中心式负载调度:所有服务的负载调度,都通过一个中心节点,根据系统内服务的实例负载情况或随机或轮流的把负载进行无差别的调度到服务实例去执行。(2)客户端式负载调度:与中心式不同点是,负载发起方根据系统内服务的实例负载情况或随机或轮流的把负载进行无差别的调度到服务实例去执行。
上述两种现有方案皆是对服务实例进行无差别调度,即每个服务实例必须是对等的。这就要求每个服务实例要么是无状态的,要么是全状态的。无状态服务,会增加实现的复杂度;而全状态服务会增加服务的资源消耗。
发明内容
有鉴于此,本发明提供一种分布式系统负载调度方法、装置、计算机存储介质及设备,以够降低服务复杂度,减少能源消耗。
为解决上述技术问题,一方面,本发明提供一种分布式系统负载调度方法,所述方法包括:服务向服务注册中心系统注册服务实例;从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地;接收负载请求,并从所述负载请求中解析出请求目标;根据所述请求目标以及所述请求目标的状态计算选择出相应的所述服务实例;将所述负载请求转发至所述服务实例处。
根据本发明实施例的分布式系统负载调度方法,解除了服务实施例必须对等的要求,降低了服务实现复杂度,减少服务资源损耗。
根据本发明的一些实施例,从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地,包括:从所述服务实例处拉取状态保存,并同步所述状态到本地。
根据本发明的一些实施例,所述根据所述请求目标以及所述请求目标的状态计算选择出相应的所述服务实例,包括:根据所述请求目标以及所述请求目标的状态计算出至少一个所述服务实例;从至少一个所述服务实例中择出一个服务实例。
根据本发明的一些实施例,从至少一个所述服务实例中择出一个服务实例,包括:通过随机算法或轮流算法从至少一个所述服务实例中择出一个服务实例。
第二方面,本发明实施例提供一种分布式系统负载调度装置,包括:服务注册中心模块,所述服务注册中心模块用于存储服务实例;状态同步模块,所述状态同步模块用于从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地;负载接收模块,所述负载接收模块用于接收负载请求,并从所述负载请求中解析出请求目标;路由模块,所述路由模块根据所述请求目标以及所述请求目标的状态计算出相应的所述服务实例;负载转发模块,所述负载转发模块根据所述路由模块的计算结果,将所述负载请求转发至所述服务实例进行执行。
根据本发明的一些实施例,所述状态同步模块从所述服务实例处拉取状态保存,并同步所述状态到本地。
根据本发明的一些实施例,所述路由模块根据所述请求目标以及所述请求目标的状态计算出至少一个所述服务实例。
根据本发明的一些实施例,所述路由模块通过随机算法或轮流算法从至少一个所述服务实例中择出一个服务实例。
第三方面,本发明实施例提供一种计算机存储介质,包括一条或多条计算机指令,所述一条或多条计算机指令在执行时实现上述任一项所述的方法。
第四方面,本发明实施例提供一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,所述处理器用于调用并执行所述一条或多条计算机指令,从而实现如上述任一项所述的方法。
本发明的上述技术方案至少具有如下有益效果之一:
(1)可以支持带状态的分布式服务系统,单个带状态的服务实例,只需持有服务部分的状态,只要服务的所有实例的状态包含完整的服务状态即可。
(2)相较于全状态的服务实例来说,减少了服务实例的资源消耗,也就是说,若全状态的服务资源消耗总量是:X×N,本发明实施例的服务实例消耗只有X,其中“X”表示服务资源总量,N表示服务的实例数。
附图说明
图1为本发明实施例中分布式系统负载调度方法的流程图;
图2为本发明实施例中分布式系统负载调度装置的示意图;
图3为本发明实施例中电子设备的示意图。
附图标记:
分布式系统负载调度方法100;
分布式系统负载调度装置200;服务注册中心模块210;状态同步模块220;负载接收模块230;路由模块240;负载转发模块250;
电子设备300;存储器310;操作系统311;应用程序312;
处理器320;网络接口330;输入设备340;硬盘350;显示设备360。
具体实施方式
下面将结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,根据本发明实施例的分布式系统负载调度方法100,包括:服务向服务注册中心系统注册服务实例;从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地;接收负载请求,并从所述负载请求中解析出请求目标;根据所述请求目标以及所述请求目标的状态计算选择出相应的所述服务实例;将所述负载请求转发至所述服务实例处。
也就是说,首先,启动服务实例,向服务注册中心系统注册服务实例,再将服务中心系统的服务实例和服务进行保存,并保持与本地同步,然后,根据负载请求解析请求目标,最后,根据请求目标选择出对应的服务实例并向请求目标发送该服务实例。
由此,根据本发明实例的分布式系统负载调度方法100,可以支持带状的分布式服务系统,单个带状态的服务实例,只需持有服务部分的状态,只要服务的所有实例的状态包含完整的服务状态即可。相较于全状态的服务实例来说,减少了服务实例的资源消耗,也就是说,若全状态的服务资源消耗总量是:X×N,本发明实施例的服务实例消耗只有X,其中“X”表示服务资源总量,N表示服务的实例数。
根据本发明的一些具体实施例,从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地,包括:从所述服务实例处拉取状态保存,并同步所述状态到本地。
优选地,所述根据所述请求目标以及所述请求目标的状态计算选择出相应的所述服务实例,包括:根据所述请求目标以及所述请求目标的状态计算出至少一个所述服务实例;从至少一个所述服务实例中择出一个服务实例,该种方式解除现有方案对服务实例必须是对等的要求,从而降低服务实现复杂度,以及服务资源消耗。
根据本发明的一个实施例,从至少一个所述服务实例中择出一个服务实例,包括:通过随机算法或轮流算法从至少一个所述服务实例中择出一个服务实例。
图2所示,本发明实施例的分布式系统负载调度装置200,包括服务注册中心模块210、状态同步模块220、负载接收模块230、路由模块240和负载转发模块250。
具体而言,所述服务注册中心模块210用于存储服务实例,所述状态同步模块220用于从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地,所述负载接收模块230用于接收负载请求,并从所述负载请求中解析出请求目标,所述路由模块240根据所述请求目标以及所述请求目标的状态计算出相应的所述服务实例,所述负载转发模块250根据所述路由模块240的计算结果,将所述负载请求转发至所述服务实例进行执行。
换言之,服务注册中心模块210用来存储系统内的服务及服务实例;状态同步模块220负责同步服务各实例状态到本地;负载接收模块230用于接收来自其它系统或服务的负载请求;路由模块240负责根据负载请求目标的当前状态,进行计算并选择出合适的服务实例;负载转发模块250根据路由模块240的计算结果,将负载请求转发到对应的服务实例处执行。
在本发明的一个实施例中,所述状态同步模块220从所述服务实例处拉取状态保存,并同步所述状态到本地。
优选地,所述路由模块240根据所述请求目标以及所述请求目标的状态计算出至少一个所述服务实例。
进一步地,所述路由模块240通过随机算法或轮流算法从至少一个所述服务实例中择出一个服务实例。
也就是说,路由模块240根据请求目标以及从状态同步模块220处获取到的请求目标的状态进行计算选择出一个或多个服务实例,然后使用随机或轮流等算法再选择出唯一的一个服务实例,最后将负载请求以及选择出来的唯一目标交给转发模块,相较于全状态的服务实例来说,减少了服务实例的资源消耗。
另外,本发明实施例还提供了一种计算机存储介质,所述计算机存储介质包括一条或多条计算机指令,所述一条或多条计算机指令在执行时实现上述任一所述的分布式系统负载调度方法。
也就是说,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器运行时,使得所述处理器执行上述任一所述的分布式系统负载调度方法。
如图3所示,本发明实施例提供了一种电子设备300,包括存储器310和处理器320,所述存储器310用于存储一条或多条计算机指令,所述处理器320用于调用并执行所述一条或多条计算机指令,从而实现上述任一所述的方法100。
也就是说,电子设备300包括:处理器320和存储器310,在所述存储器310中存储有计算机程序指令,其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器320执行上述任一所述的方法100。
进一步地,如图3所示,电子设备300还包括网络接口330、输入设备340、硬盘350、和显示设备360。
上述各个接口和设备之间可以通过总线架构互连。总线架构可以是可以包括任意数量的互联的总线和桥。具体由处理器320代表的一个或者多个中央处理器(CPU),以及由存储器310代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。
所述网络接口330,可以连接至网络(如因特网、局域网等),从网络中获取相关数据,并可以保存在硬盘350中。
所述输入设备340,可以接收操作人员输入的各种指令,并发送给处理器320以供执行。所述输入设备340可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
所述显示设备360,可以将处理器320执行指令获得的结果进行显示。
所述存储器310,用于存储操作系统运行所必须的程序和数据,以及处理器320计算过程中的中间结果等数据。
可以理解,本发明实施例中的存储器310可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。本文描述的装置和方法的存储器310旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器310存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统311和应用程序312。
其中,操作系统311,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序312,包含各种应用程序,例如浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序312中。
上述处理器320,当调用并执行所述存储器310中所存储的应用程序和数据,具体的,可以是应用程序312中存储的程序或指令时,服务向服务注册中心系统注册服务实例;从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地;接收负载请求,并从所述负载请求中解析出请求目标;根据所述请求目标以及所述请求目标的状态计算选择出相应的所述服务实例;将所述负载请求转发至所述服务实例处。
本发明上述实施例揭示的方法可以应用于处理器320中,或者由处理器320实现。处理器320可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器320中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器320可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器310,处理器320读取存储器310中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ASIC)、数字信号处理器DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
具体地,处理器320还用于读取所述计算机程序,执行上述任一所述的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种分布式系统负载调度方法,其特征在于,所述方法包括:
服务向服务注册中心系统注册服务实例;
从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地;
接收负载请求,并从所述负载请求中解析出请求目标;
根据所述请求目标以及所述请求目标的状态计算选择出相应的所述服务实例;
将所述负载请求转发至所述服务实例处。
2.如权利要求1所述的分布式系统负载调度方法,其特征在于,从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地,包括:
从所述服务实例处拉取状态保存,并同步所述状态到本地。
3.如权利要求1所述的分布式系统负载调度方法,其特征在于,所述根据所述请求目标以及所述请求目标的状态计算选择出相应的所述服务实例,包括:
根据所述请求目标以及所述请求目标的状态计算出至少一个所述服务实例;
从至少一个所述服务实例中择出一个服务实例。
4.如权利要求3所述的分布式系统负载调度方法,其特征在于,从至少一个所述服务实例中择出一个服务实例,包括:通过随机算法或轮流算法从至少一个所述服务实例中择出一个服务实例。
5.一种分布式系统负载调度装置,其特征在于,包括:
服务注册中心模块,所述服务注册中心模块用于存储服务实例;
状态同步模块,所述状态同步模块用于从所述服务注册中心系统获取所述服务和所述服务实例,并同步所述服务和所述服务实例到本地;
负载接收模块,所述负载接收模块用于接收负载请求,并从所述负载请求中解析出请求目标;
路由模块,所述路由模块根据所述请求目标以及所述请求目标的状态计算出相应的所述服务实例;
负载转发模块,所述负载转发模块根据所述路由模块的计算结果,将所述负载请求转发至所述服务实例进行执行。
6.如权利要求5所述的分布式系统负载调度装置,其特征在于,所述状态同步模块从所述服务实例处拉取状态保存,并同步所述状态到本地。
7.如权利要求5所述的分布式系统负载调度装置,其特征在于,所述路由模块根据所述请求目标以及所述请求目标的状态计算出至少一个所述服务实例。
8.如权利要求7所述的分布式系统负载调度装置,其特征在于,所述路由模块通过随机算法或轮流算法从至少一个所述服务实例中择出一个服务实例。
9.一种计算机存储介质,其特征在于,包括一条或多条计算机指令,所述一条或多条计算机指令在执行时实现如权利要求1-4中任一项所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,
所述存储器用于存储一条或多条计算机指令;
所述处理器用于调用并执行所述一条或多条计算机指令,从而实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911165387.5A CN112835707A (zh) | 2019-11-25 | 2019-11-25 | 分布式系统负载调度方法、装置、计算机存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911165387.5A CN112835707A (zh) | 2019-11-25 | 2019-11-25 | 分布式系统负载调度方法、装置、计算机存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112835707A true CN112835707A (zh) | 2021-05-25 |
Family
ID=75922960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911165387.5A Pending CN112835707A (zh) | 2019-11-25 | 2019-11-25 | 分布式系统负载调度方法、装置、计算机存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835707A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116016675A (zh) * | 2022-11-29 | 2023-04-25 | 北京奇艺世纪科技有限公司 | 一种服务请求处理方法、装置、网关设备及存储介质 |
-
2019
- 2019-11-25 CN CN201911165387.5A patent/CN112835707A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116016675A (zh) * | 2022-11-29 | 2023-04-25 | 北京奇艺世纪科技有限公司 | 一种服务请求处理方法、装置、网关设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10496446B2 (en) | Altruistic dependable memory overcommit for virtual machines | |
US20200099606A1 (en) | Distrubuted testing service | |
KR101400286B1 (ko) | 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치 | |
US20170185452A1 (en) | Apparatus and method for data processing | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN112988423A (zh) | 消息消费、消息分发方法、装置、服务器及存储介质 | |
JP2007041720A (ja) | ジョブステップ実行プログラムおよびジョブステップ実行方法 | |
CN109033814B (zh) | 智能合约触发方法、装置、设备及存储介质 | |
CN107203465B (zh) | 系统接口测试方法及装置 | |
CN106897299B (zh) | 一种数据库访问方法及装置 | |
CN105511874A (zh) | 嵌入式系统启动方法和智能终端 | |
CN111258726B (zh) | 任务调度方法和装置 | |
CN105373563B (zh) | 数据库切换方法及装置 | |
CN113419841B (zh) | 消息调度方法、装置、电子设备和计算机可读介质 | |
US8812578B2 (en) | Establishing future start times for jobs to be executed in a multi-cluster environment | |
CN112835707A (zh) | 分布式系统负载调度方法、装置、计算机存储介质及设备 | |
US9870396B2 (en) | Immediate join spilling scheme for a database | |
US10523746B2 (en) | Coexistence of a synchronous architecture and an asynchronous architecture in a server | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
WO2018089339A1 (en) | Method and system for affinity load balancing | |
US11797342B2 (en) | Method and supporting node for supporting process scheduling in a cloud system | |
Hamandawana et al. | Towards an energy efficient computing with coordinated performance-aware scheduling in large scale data clusters | |
US8250580B2 (en) | Multi-core SOC synchronization component | |
US20110179420A1 (en) | Computer System and Method of Operation Thereof | |
CN113051182B (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 |