发明内容
本发明实施例所要解决的技术问题在于,提供一种服务调度方法、装置和电子设备,可以节约计算资源,提高计算资源的使用率。
为了解决上述技术问题,本发明实施例第一方面提供了一种服务调度的方法,包括:
获取服务请求,并确定所述服务请求所请求响应的目标功能服务;
查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息;所述目标服务进程中的所述目标功能服务为未被暂停的功能服务;
根据所述负载信息,在所述至少一个服务器中选择满足负载均衡条件的服务器,作为目标服务器;
将所述服务请求转发至所述目标服务器,以使所述目标服务器响应所述服务请求。
其中,所述负载信息包括:服务器的中央处理器的占用率、服务器的内存使用率、服务器的吞吐量中的至少一种。
其中,所述查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息,包括:
查找包含所述目标功能服务的目标服务类,并查找包含所述目标服务类的目标服务进程;
查找所述目标服务进程所在的至少一个服务器,并获取所述至少一个服务器分别对应的负载信息。
其中,所述查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息之前,还包括:
获取服务器集群中的所有服务器的负载信息,所述服务器集群包括所述至少一个服务器。
其中,所述获取服务请求,并确定所述服务请求所请求响应的目标功能服务,包括:
获取并解析服务请求,得到所述服务请求的统一资源定位符;
根据所述统一资源定位符,确定所述服务请求所请求的功能服务,并确定为目标功能服务。
其中,还包括:
获取所述目标服务器响应所述目标功能服务的响应结果;
根据所述响应结果,统计响应失败的次数;
若所述响应失败的次数大于预设的次数阈值,暂停所述目标服务器中的所述目标功能服务。
其中,还包括:
若所述目标服务类中的所有功能服务均被暂停,则暂停所述目标服务类;
若所述目标服务进程中的所有服务类被均暂停,则暂停所述目标服务进程;其中所述服务进程包括多个服务类,每个服务类包括至少一个功能服务;未被暂停的服务类中未被暂停的功能服务继续提供相应服务。
本发明实施例第二方面提供了一种服务调度装置,包括:
确定单元,用于获取服务请求,并确定所述服务请求所请求响应的目标功能服务;
获取单元,用于查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息;所述目标服务进程中的所述目标功能服务为未被暂停的功能服务;
选择单元,用于根据所述负载信息,在所述至少一个服务器中选择满足负载均衡条件的服务器,作为目标服务器;
响应单元,用于将所述服务请求转发至所述目标服务器,以使所述目标服务器响应所述服务请求。
其中,所述负载信息包括:
服务器的中央处理器的占用率、服务器的内存使用率、服务器的吞吐量中的至少一种。
其中,所述获取单元,包括:
第一查找子单元,用于查找包含所述目标功能服务的目标服务类,并查找包含所述目标服务类的目标服务进程;
第二查找子单元,用于查找所述目标服务进程所在的至少一个服务器,并获取所述至少一个服务器分别对应的负载信息。
其中,
所述获取单元,还用于获取服务器集群中的所有服务器的负载信息,所述服务器集群包括所述至少一个服务器。
其中,所述确定单元,包括:
解析子单元,用于获取并解析服务请求,得到所述服务请求的统一资源定位符;
确定服务子单元,用于根据所述统一资源定位符,确定所述服务请求所请求的功能服务,并确定为目标功能服务。
其中,还包括:
获取单元,还用于获取所述目标服务器响应所述目标功能服务的响应结果;
统计单元,用于根据所述响应结果,统计响应失败的次数;
暂停单元,用于若所述响应失败的次数大于预设的次数阈值,暂停所述目标服务器中的所述目标功能服务。
其中,
所述暂停单元,还用于若所述目标服务类中的所有功能服务均被暂停,则暂停所述目标服务类;
所述暂停单元,还用于若所述目标服务进程中的所有服务类被均暂停,则暂停所述目标服务进程;其中所述服务进程包括多个服务类,每个服务类包括至少一个功能服务;未被暂停的服务类中未被暂停的功能服务继续提供相应服务。
本发明实施例第三方面提供了一种电子设备,包括:处理器和存储器,所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器被配置用于调用所述程序代码,执行如下操作:
所述处理器,用于获取服务请求,并确定所述服务请求所请求响应的目标功能服务;
所述处理器,还用于查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息;所述目标服务进程中的所述目标功能服务为未被暂停的功能服务;
所述处理器,还用于根据所述负载信息,在所述至少一个服务器中选择满足负载均衡条件的服务器,作为目标服务器;
所述处理器,还用于将所述服务请求转发至所述目标服务器,以使所述目标服务器响应所述服务请求。
其中,所述处理器还用于:
查找包含所述目标功能服务的目标服务类,并查找包含所述目标服务类的目标服务进程;
查找所述目标服务进程所在的至少一个服务器,并获取所述至少一个服务器分别对应的负载信息。
其中,所述处理器还用于:
获取服务器集群中的所有服务器的负载信息,所述服务器集群包括所述至少一个服务器。
其中,所述处理器还用于:
获取并解析服务请求,得到所述服务请求的统一资源定位符;
所述处理器,还用于根据所述统一资源定位符,确定所述服务请求所请求的功能服务,并确定为目标功能服务。
其中,所述处理器还用于:
获取所述目标服务器响应所述目标功能服务的响应结果;
根据所述响应结果,统计响应失败的次数;
若所述响应失败的次数大于预设的次数阈值,暂停所述目标服务器中的所述目标功能服务。
其中,所述处理器还用于:
若所述目标服务类中的所有功能服务均被暂停,则暂停所述目标服务类;
若所述目标服务进程中的所有服务类被均暂停,则暂停所述目标服务进程;其中所述服务进程包括多个服务类,每个服务类包括至少一个功能服务;未被暂停的服务类中未被暂停的功能服务继续提供相应服务。
实施本发明实施例,具有如下有益效果:通过获取服务请求确定需要响应的目标功能服务;查找包含目标功能服务的目标服务进程,并获取目标服务进程所在的至少一个服务器分别对应的负载信息;在至少一个服务器中选择满足负载均衡条件的服务器作为目标服务器;将获取的服务请求转发至目标服务器,使目标服务器响应该服务请求。由于选择满足负载均衡条件的服务器提供目标功能服务,使得计算资源得到最优配置,避免资源分配不均的情况;同时目标功能服务以及目标服务进程之间的单向层级架构关系,保证每一层服务结构对服务器产生不稳定性的概率最低,提高计算资源的使用率。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
本发明实施例中提及的服务调度方法的执行依赖于计算机程序,可运行于冯·若依曼体系的计算机系统之上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
以下分别进行详细说明。
请参见图1,图1是本发明实施例提供的一种服务调度方法的架构示意图。如图1所示,本发明的服务调度方法架构图100可以包括:个人电脑101、管理装置102、网关103、监控器104、服务器A105、服务器B106、服务器C107。用户通过个人电脑101发起服务请求;网关103接收来自个人电脑101的服务请求并确定该服务请求所请求响应的功能服务;管理装置102首先查找功能服务所在的服务类,再查找服务类所在的服务进程,进而确定能够响应功能服务的服务器为服务器A105或服务器B106或服务器C107;监控器104监控服务器A105、服务器B106、服务器C107当前的负载信息,并将上述负载信息发送给管理装置102;管理装置102根据服务器当前的负载信息以及根据负载均衡条件,作出满足负载均衡条件的调度策略,并向网关103发送该调度策略;网关103根据该调度策略,向满足负载均衡条件的服务器A105或服务器B106或服务器C107转发电脑101发起的服务请求;服务器A105或服务器B106或服务器C107接收到服务请求后,响应该服务请求所请求响应的功能服务;监控器104监控服务器响应功能服务成功或者失败的反馈信息,并将该反馈信息发送到管理装置102。需要说明的是,监控器104和管理装置102可以集成在网关103中,也可作为一个独立的产品单独使用。
进一步地,请一并参见图2b,图2b是本发明实施例提供的另一种服务器层级结构的示意图。监控器104可以获取服务器反馈的与功能服务相关联的多个响应结果,并检测多个响应结果中的失败响应结果,若某个功能服务所对应的失败响应结果数量超过预设数量阈值,则可以通知服务器暂停该功能服务;若某个服务类中的所有功能服务被暂停,则可以通知服务器暂停该服务类;同理若某个服务进程中的所有服务类被暂停,则可以通知服务器暂停该服务进程。可以将响应时长超过预设时间阈值的响应结果确定为失败响应结果。其中,可以通过修改功能服务对应的响应状态码用以暂停该功能服务,响应状态码表示服务器响应状态的数字代码,当功能服务的响应状态码为200时,表示服务器中能够响应该功能服务;当响应状态码为404时,表示服务器无法响应该功能服务,同理通过修改服务类和服务进程的状态响应码也可以暂停服务类或者暂停服务进程。如图2b所示,服务器300可以为上述图1中的服务器。服务器300包括3个服务进程,分别是用户服务进程301、商品服务进程302、支付服务进程302,其中用户服务进程301包括4个服务类,分别为用户基本信息管理服务类3011、用户权限服务类3012、用户组织机构管理服务类3013、用户信息导入导出服务类3014,其中用户基本信息管理服务类3011又包括4个功能服务,分别是用户新增功能服务30111、用户查询功能服务30112、用户修改功能服务30113、用户删除功能服务30114。只有当用户新增功能服务30111的响应状态码、用户查询功能服务30112的响应状态码、用户修改功能服务30113的响应状态码、用户删除功能服务30114的响应状态码均为404时,才将用户基本信息管理服务类3011的响应状态码修改为404,用以暂停用户基本信息管理服务类3011,暂停的方式可以是不响应该服务请求,并同时跳转到一个404错误页面,该404页面用于提示该服务器无法正常提供所请求的服务;同理只有当用户基本信息管理服务类3011的响应状态码、用户权限服务类3012的响应状态码、用户组织机构管理服务类3013的响应状态码、用户信息导入导出服务类3014的响应状态码均为404时,才将用户服务进程301的响应状态码修改为404,用以暂停用户服务进程301。通过层层暂停,最大限度的降低因为一个功能服务出了问题对剩余的其他功能服务或者服务类或者服务进程造成的影响。
又例如,网站A的多个服务进程分部在多个服务器上,而每一个服务进程包括至少一个服务类,而每一个服务类又包括至少一个功能服务。若其中一台服务器B的功能服务C因升级修复缺陷而需要暂停服务器B中的功能服务C,在升级修复缺陷期间,若存在功能服务C的请求,就将该请求转发至服务器B以外的且能响应功能服务C的服务器D,同时,服务器B中除功能服务C以为的其他功能服务以及服务类均正常提供服务,通过多粒度的控制功能服务,满足功能服务的高可用需求。
请参见图3,是本发明实施例提供的一种服务调度方法的流程示意图,如图3所示,所述服务调度方法至少包括:
步骤S301,获取服务请求,并确定所述服务请求所请求响应的目标功能服务;
具体的,监测前端是否向后台发送服务请求,若发送了服务请求,首先确认发送服务请求的权限,若发送方已获得发送服务的权限,则接收该服务请求;若没有取得发送服务的权限,则要求发送方验证权限,待通过权限验证后再接收该服务请求。若接收请求成功,可以向发送方发送接收请求成功的反馈信息,若请求接收失败,可以向发送方发送接收请求失败的反馈信息,提醒发送方重新发送服务请求。其中,前端可以是网页页面或者安装在终端设备中的APP(Application,计算机应用程序),后台是指所有涉及管理网站的模块,例如监控器、网关和服务器等。获取服务请求后,通过解析该请求,确定该服务请求所请求响应的目标功能服务,服务功能是指前端发送来的请求后台完成的事件。例如,当用户点击网页页面上的“注册”按钮时,前端发送服务请求,通过获取并解析该服务请求,确定所请求响应的目标功能服务是“用户新增”。
步骤S302,查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息;
具体的,确定了目标功能服务后,查找该目标功能服务所在的目标服务进程,并获取该目标服务进程所在的服务器的负载信息。由于本发明涉及服务调度方法,因此该目标服务进程所在的服务器可能不止一台,所以可以获取目标进程所在的所有服务器分别对应的负载信息。需要说明的是,由于服务器中的服务功能以及服务进程均有可能被暂停使用,此处目标服务进程中的目标服务功能服务为未被暂停的功能服务,同时目标服务进程为未被暂停的服务进程。服务进程是具备某些共同特征的功能服务的集合。功能服务和服务进程是2个由低到高的层级结构,服务进程等级最高,其次是功能服务。例如,请参见图2a,图2a是本发明实施例提供的一种服务器层级结构的示意图,如图2a所示,服务器200括3个服务进程,分别是:用户服务进程201、商品服务进程202以及支付服务进程203,其中用户服务进程201又包括4个功能服务,分别为:用户新增功能服务2011、用户查询功能服务2012、用户修改功能服务2013以及用户删除功能服务2014。
可选的,确定了目标功能服务后,在服务器中首先找到目标功能服务所在的目标服务类,待查找到目标服务类后,再查找该目标服务类所在的目标服务进程,并获取该目标服务进程所在的服务器的负载信息。由于本发明涉及服务调度方法,因此该目标服务进程所在的服务器可能不止一台,所以可以获取目标进程所在的所有服务器分别对应的负载信息。其中,目标服务进程为未被暂停的服务进程、目标服务类为未被暂停的服务类、目标功能服务为未被暂停的功能服务。服务类是具备某些共同特征的功能服务的集合,服务进程是具备某些共同特征的服务类的集合。功能服务、服务类和服务进程是3个由低到高的层级结构,服务进程等级最高,其次是服务类,最底层是功能服务。以图2b为例,服务器300括3个服务进程,用户服务进程301、商品服务进程302以及支付服务进程303;其中用户服务进程301包括有3个服务类,分别是:用户基本信息管理类3011、用户权限管理类3012、用户组织机构管理服务类3013以及用户信息导入导出类3014,其中每一个服务类包括至少一个功能服务;用户基本信息管理类3011包括:用户新增功能服务30111、用户查询功能服务30112、用户修改功能服务30113以及用户删除功能服务30114。
服务进程是运行在服务器上的最小单位,每一个服务进程占用服务器独立的内存空间,一个服务器上可以运行多个服务进程,也可以将同一个服务进程放在多个服务器上运行。负载信息是指服务器的目前的计算性能情况,负载信息可以包括:服务器的中央处理器的占用率、服务器的内存使用率、服务器的吞吐量、服务器的最低吞吐量、服务器的网络使用率或者服务器的响应时间。负载信息主要通过监控器监控服务器得到,监控器监控并实时更新所有服务器的负载信息。
步骤S303,根据所述负载信息,在所述至少一个服务器中选择满足负载均衡条件的服务器,作为目标服务器;
具体的,根据从监控器得到的目标服务进程所在的服务器的负载信息,为负载信息中的每一个分项负载信息赋予一个权重,计算所有服务器的负载值,负载值越大说明服务器的负载越重,也就是当前服务器的计算效率低,每一项的权重可以相等也可以根据需求的不同,为更满足需求的负载信息项赋予更高的权重。根据计算的负载值,在服务器中集合中选择满足负载均衡条件的服务器作为目标服务器,而剩余的不满足负载均衡条件的服务器作为备选服务器,一旦目标服务器中的目标功能服务被暂停,启动备选服务器响应目标功能服务。可以理解的是,若目标进程所在的服务器只有一台,那么这台服务器直接响应服务请求,而不必满足负载均衡条件。负载均衡条件是扩展网络设备和服务器的带宽、加强网络数据处理能力、提高网络的灵活性和可用性的条件,本发明中的负载均衡条件可以负载值最小,即从目标进程所在的服务器中选择负载值最小的服务器作为目标服务器;负载均衡条件也可以是只要服务器的负载值小于一个预设的数值阈值,那么上述服务器就满足负载均衡条件,可以从负载值小于预设的数值阈值的服务器中随机选取一台服务器,或者从负载值小于预设的数值阈值的服务器中轮流依次选取一台服务器作为目标服务器。例如,服务器A、服务器B和服务器C均可为目标功能F提供服务,通过监控器查询上述3台服务器的负载信息,并计算3台服务器的负载值分别为:0.5,0.7,0.3,负载值越大说明服务器负载越重,若负载均衡条件为满足负载值最小,满足负载均衡条件的服务器为服务器C,因此负载值等于0.3的服务器C就为目标服务器;若负载均衡条件为满足负载值小于0.6,因此满足负载均衡条件的服务器为服务器A与服务器C,因此可以从服务器A和服务器C中随机的选取一台服务器作为目标服务器。
步骤S304,将所述服务请求转发至所述目标服务器,以使所述目标服务器响应所述服务请求。
具体的,将获取的服务请求转发至满足负载均衡条件的目标服务器,由该目标服务器响应该服务请求,其中响应服务请求的方式可以包括:目标服务器直接为服务请求所对应的目标功能服务提供服务,并将目标服务器响应的目标功能服务的反馈数据返回到前端页面,以图2b为例,当目标功能服务为用户新增功能服务30111时,若满足负载均衡条件的目标服务器为服务器300,就由目标服务器300直接为用户新增功能服务30111提供服务,并将用户新增功能服务30111的反馈数据返回到前端页面。
可选的,响应服务请求的方式还可以包括:若目标服务器不能直接为服务请求所对应的目标功能服务提供服务,则目标服务器转发该服务请求至能够响应该服务请求对应的目标功能服务的设备,再由该设备提供目标功能服务并将反馈数据先发送至目标服务器,再由目标服务器转发至前端页面。以图2a和图2b为例,当服务请求所对应的目标功能服务为用户新增功能服务30111时,若满足负载均衡条件的目标服务器为服务器300,而服务器300不能提供用户新增功能服务30111,同时服务器200可以提供用户新增功能服务2011,则服务器300将服务请求转发至服务器200,由服务器200提供用户新增功能服务2011的服务并将反馈数据经由服务器300反馈到前端页面。
可选的,响应服务请求的方式还可以包括:若目标服务器不能直接为服务请求所对应的目标功能服务提供服务,而只能提供一个可以响应该目标功能服务的统一资源定位符(URI,Uniform Resource Identifier),则目标服务器向发送方反馈所述统一资源定位符,发送方根据所述统一资源定位符再次发起一个服务请求,以使所述统一资源定位符所指示的设备响应服务请求所对应的目标功能服务,并直接将服务反馈数据发送至前端页面。仍以图2a和图2b为例,当服务请求所对应的目标功能服务为用户新增功能服务30111时,若满足负载均衡条件的目标服务器为服务器300,而服务器300不能提供用户新增功能服务30111,同时服务器200可以提供用户新增功能服务2011,则服务器300会向发送方反馈服务器200中能够响应用户新增功能服务30111的统一资源定位符,待发送方根据该统一资源定位符再次发起一个服务请求后,由统一资源定位符所指示的服务器200为用户新增功能服务2011提供服务,并将反馈数据直接发送到前端页面。
可选的,其中任意一个功能服务或者任意一个服务类或者任意一个服务进程的暂停条件以及暂停方式具体可参见图2b的描述方式,此处不再进行赘述。
实施本发明实施例,通过获取服务请求确定需要响应的目标功能服务;查找包含目标功能服务的目标服务进程,并获取目标服务进程所在的至少一个服务器分别对应的负载信息;在至少一个服务器中选择满足负载均衡条件的服务器作为目标服务器;将获取的服务请求转发至目标服务器,使目标服务器响应该服务请求。由于选择满足负载均衡条件的服务器提供目标功能服务,使得计算资源得到最优配置,避免资源分配不均的情况;同时目标功能服务、目标服务类以及目标服务进程之间的单向层级架构关系,保证每一层服务结构对服务器产生不稳定性的概率最低,提高计算资源的使用率。
请参见图4,是本发明实施例提供的另一种服务调度方法的流程示意图,如图4所示,所述服务调度方法至少包括:
步骤S401,获取并解析服务请求,得到所述服务请求的统一资源定位符;
具体的,获取前端向后台发送的服务请求,并通过解析该请求可以得到:请求来源、请求的统一资源定位符以及请求是否允许接收压缩内容等,其中所有的服务都采用超文本传输协议(HTTP,Hyper Text Transfer Protocol),超文本传输协议是互联网上用于服务器传输超文本到浏览器的传输协议。请求来源可以包括请求的IP(InternetProtocol,互联网协议)地址以及端口号,用于后续服务器发送反馈数据到请求来源的IP地址以及端口号,IP地址是指互联网协议地址,端口号是计算机与外界通讯交流的出口。统一资源定位符是互联网上标准资源的地址,互联网上的每个文件都有一个唯一的统一资源定位符,它包含的信息指出文件的位置以及应该怎么处理它。统一资源定位符的路径会明确标识出服务请求所请求响应的目标功能服务,一个目标功能服务对应唯一一个统一资源定位符。例如,功能服务“用户新增”的统一资源定位符是“/用户/用户基本信息管理/用户新增”,由统一资源定位符可知功能服务“用户新增”的路径为“用户→用户基本信息管理→用户新增”,同时从统一资源定位符也可以看出服务进程为用户服务进程,服务类为用户基本信息管理服务类,功能服务为用户新增功能服务。
步骤S402,根据所述统一资源定位符,确定所述服务请求所请求的功能服务,并确定为目标功能服务;
由服务请求解析得到的统一资源定位符所指定的路径,可以标识出服务请求所请求的功能服务,并将该功能服务确定为目标功能服务。例如,由服务请求解析的统一资源定位符为“/用户/用户信息导入导出/用户信息导入”,从统一资源定位符最下一级的所标识的功能服务可知,所请求的功能服务为“用户信息导入”,即“用户信息导入”为目标功能服务;若统一资源定位符为“/用户/用户权限管理/用户权限删除”,所请求的功能服务为“用户权限删除”,即“用户权限删除”为目标功能服务。
步骤S403,获取服务器集群中的所有服务器的负载信息;
具体的,获取服务器集群中的所有服务器的负载信息,并由该负载信息生成服务器负载列表,服务器负载列表罗列出每一台服务器的唯一标识码,服务器的IP地址,以及服务器的中央处理器的占用率、服务器的内存使用率、服务器的吞吐量、服务器的最低吞吐量、服务器的网络使用率或者服务器的响应时间等服务器的负载信息,负载信息中的每一个分项提前预设一个权重,计算得出的服务器的负载值。服务器集群是是指将多台服务器集中起来一起进行同一种服务,利用多个计算机进行并行计算从而获得很高的计算速度。
可选的,步骤S403获取服务器集群中的所有服务器的负载信息可以在步骤S401获取并解析服务请求,得到所述服务请求的统一资源定位符之前,也可以在步骤S402,根据所述统一资源定位符,确定所述服务请求所请求的功能服务,并确定为目标功能服务之后,本发明不做限定。
步骤S404,查找包含所述目标功能服务的目标服务类,并查找包含所述目标服务类的目标服务进程;
具体的,确定目标功能服务后,首先查找包含目标功能服务的服务类,并将该服务类确定为目标服务类;然后再查找包含目标服务类的服务进程,并将该服务进程确定为目标服务进程。以图2b为例,当目标功能服务是用户删除功能服务30114时,首先查找用户删除功能服务30114所在的服务类为用户基本信息管理服务类3011,则用户基本信息管理服务类3011为目标服务类;再查找用户基本信息管理服务类3011所在的服务进程是用户服务进程301,则用户服务进程301为目标服务进程。
步骤S405,查找所述目标服务进程所在的至少一个服务器,并获取所述至少一个服务器分别对应的负载信息;
具体的,确定目标服务进程后,查找目标服务进程所在的服务器,若目标服务进程所在的服务器只有一台,则获取该服务器的负载信息;若目标服务进程所在的服务器有多台,则分别获取上述多台服务器的负载信息。以图1为例,若目标服务进程所在的服务器是服务器A,则获取服务器A的负载信息;若目标服务进程所在的服务器分别是服务器A、服务器B和服务器C,则获取服务器A的负载信息,获取服务器B的负载信息,获取服务器C的负载信息。
步骤S406,根据所述负载信息,在所述至少一个服务器中选择满足负载均衡条件的服务器,作为目标服务器;
步骤S407,将所述服务请求转发至所述目标服务器,以使所述目标服务器响应所述目标功能服务。
其中,步骤S406-步骤S407的具体实现方式可参见上述图3所对应实施例中对步骤S303-步骤S304的描述,这里将不再继续进行赘述。
实施本发明实施例,通过获取并解析服务请求得到统一资源定位符,由统一资源定位符确定需要响应的目标功能服务;查找包含目标功能服务的目标服务类,进而查找包含目标服务类的目标服务进程,并获取目标服务进程所在的至少一个服务器分别对应的负载信息;在至少一个服务器中选择满足负载均衡条件的服务器作为目标服务器;将获取的服务请求转发至目标服务器,使目标服务器响应该目标功能服务。由于选择满足负载均衡条件的服务器提供目标功能服务,使得计算资源得到最优配置,避免资源分配不均的情况;同时目标功能服务、目标服务类以及目标服务进程之间的单向层级架构关系,保证每一层服务结构对服务器产生不稳定性的概率最低,提高计算资源的使用率。
请参见图5,是本发明实施例提供的另一种服务调度方法的流程示意图,如图5所示,所述服务调度方法至少包括:
步骤S501,服务调度装置获取服务请求,并确定所述服务请求所请求响应的目标功能服务;
步骤S502,服务调度装置从服务器中查找包含所述目标功能服务的目标服务进程,服务调度装置从监控器中获取所述目标服务进程所在的至少一个服务器分别对应的负载信息;
步骤S503,根据所述负载信息,服务调度装置在所述至少一个服务器中选择满足负载均衡条件的服务器,作为目标服务器;
步骤S504,服务调度装置将所述服务请求转发至所述目标服务器,以使所述目标服务器响应所述服务请求;
其中,步骤S501-步骤S504的具体实现方式可参见上述图3所对应实施例中对步骤S301-步骤S304的描述,这里将不再继续进行赘述。
步骤S505,获取所述目标服务器响应所述目标功能服务的响应结果;
具体的,服务调度装置从监控器中获取在预设时间段内,目标服务器响应目标功能服务的响应结果。目标服务器响应服务请求后,监控器监控其响应结果,若在预设的时间段内成功响应目标功能服务,则认为响应成功;若在预设的时间段内没有响应目标功能服务,则认为响应失败。例如,在预设时间段的0.5秒内,目标服务器没有响应目标功能服务,则认为本次目标服务器响应失败;也可以是目标服务器响应服务请求后,监控器监控其响应结果,若目标服务器直接反馈不能响应服务请求所对应的目标功能服务,也认为响应失败。
步骤S506,根据所述响应结果,服务调度装置统计响应失败的次数;
具体的,根据从监控器获取的响应结果,统计目标服务器响应目标功能服务失败的次数。统计的时间过程可以是只要目标服务器启动就一直统计该目标服务器响应目标功能服务的情况;也可以是间隔固定的时间统计一次,而每统计一次就更新一次统计数据。例如,每隔10天清空统计次数,重新统计目标服务器响应目标功能服务的失败次数。
步骤S507,服务调度装置判断响应失败的次数是否大于预设的次数阈值;
具体的,判断响应失败的次数是否大于预设的次数阈值,若失败的次数大于预设的次数阈值,则执行步骤S508;若失败的次数小于或者等于预设的次数阈值,则执行步骤S506。
步骤S508,服务调度装置向服务器发送暂停所述目标服务器中的所述目标功能服务的命令;
具体的,若失败的次数大于预设的次数阈值,则暂停目标服务器中的目标功能服务,并向监控器发送该目标服务器已暂停提供目标功能服务的反馈信息,并将目标服务器中的目标功能服务的响应状态码改为404,其中响应状态码404表示该目标功能服务当前不可提供服务,暂停一段时间后,可以再重新开启目标服务器中的目标功能服务,若重新开启目标服务器中的目标功能服务后,该目标功能服务仍不能响应目标功能服务,则暂停并不再开启该目标功能服务,待人工排查故障后,由人工重新开启目标服务器中的目标功能服务。
步骤S509,若所述目标服务类中的所有功能服务均被暂停,则服务调度装置向服务器发送暂停所述目标服务类的命令;
具体的,检测目标服务类中的包括目标功能服务在内的所有功能服务的响应状态码,其中响应状态码404表示该目标功能服务当前不可提供服务。若目标服务类中的所有功能服务的响应状态码均为404,则暂停该目标服务类并将该目标服务类的状态码设置为404。仍以图2b为例,用户基本信息管理服务类3011包括4个功能服务,分别为:用户新增30111、用户查询30112、用户修改30113和用户删除30114,检测用户基本信息管理服务类3011中的4个功能服务的响应状态码状态,若用户新增30111的响应状态码、用户查询30112的响应状态码、用户修改30113的响应状态码和用户删除30114的响应状态码均为404,则直接暂停用户基本信息管理服务类3011并将用户基本信息管理服务类3011的状态码设置为404,而其余的除用户基本信息管理服务类3011以外的服务类(如:用户权限服务类3012,用户组织机构管理服务类3013,用户信息导入导出服务类3014)仍可继续提供服务。
步骤S510,若所述目标服务进程中的所有服务类被均暂停,则服务调度装置向服务器发送暂停所述目标服务进程的命令。
具体的,检测目标服务进程中包括目标服务类在内的所有服务类的响应状态码,其中响应状态码404表示该目标服务类当前不可提供服务。若目标服务进程中的所有服务类的响应状态码均为404,则暂停该目标服务进程并将该目标服务进程的状态码设置为404。可以看出,一个服务进程包括至少一个服务类,每个服务类包括至少一个功能服务,功能服务、服务类和服务进程是一个由低像高的层级结构,而未被暂停的服务类中未被暂停的功能服务继续提供相应的功能服务。仍以图2b为例,用户服务进程301包括4个服务类,分别为:用户基本信息关系服务类3011、用户权限管理服务类3012、用户组织机构管理服务类3013以及用户信息导入导出服务类3014,检测用户服务进程301中4个服务类的响应状态码,若用户基本信息关系服务类3011的响应状态码、用户权限管理服务类3012的响应状态码、用户组织机构管理服务类3013的响应状态码以及用户信息导入导出服务类3014的响应状态码均为404,则直接暂停用户服务进程301并将上述用户服务进程301的状态码设置为404,而其余除用户服务进程301以外的服务进程(如:商品服务进程302,支付服务进程303)仍可继续提供服务。可以理解的是,步骤S509-步骤S510持续于整个服务器运行阶段,只要服务器运行,就需要检测服务进程、服务类以及功能服务是否需要暂停。
实施本发明实施例,通过获取服务请求确定需要响应的目标功能服务;查找包含目标功能服务的目标服务类,进而查找包含目标服务类的目标服务进程,并获取目标服务进程所在的至少一个服务器分别对应的负载信息;在至少一个服务器中选择满足负载均衡条件的服务器作为目标服务器;将获取的服务请求转发至目标服务器,使目标服务器响应该目标功能服务;若所述目标服务类中的所有功能服务均被暂停,则暂停所述目标服务类;若所述目标服务进程中的所有服务类被均暂停,则暂停所述目标服务进程。由于选择满足负载均衡条件的服务器提供目标功能服务,使得计算资源得到最优配置,避免资源分配不均的情况;同时目标功能服务、目标服务类以及目标服务进程之间的单向层级架构关系,一个功能服务出了问题对剩余的其他功能服务或者服务类或者服务进程的不产生影响,保证每一层服务结构对服务器产生不稳定性的概率最低,提高计算资源的使用率。
进一步地,请参见图6,是本发明实施例提供的一种服务调度装置的结构示意图。如图6所示,所述服务调度装置1至少包括:确定单元10,获取单元20,选择单元30,响应单元40,
所述确定单元10,用于获取服务请求,并确定所述服务请求所请求响应的目标功能服务;
所述获取单元20,用于查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息;所述目标服务进程中的所述目标功能服务为未被暂停的功能服务;
所述获取单元20,还用于获取服务器集群中的所有服务器的负载信息,所述服务器集群包括所述至少一个服务器;
所述获取单元20,还用于获取所述目标服务器响应所述目标功能服务的响应结果;
所述选择单元30,用于根据所述负载信息,在所述至少一个服务器中选择满足负载均衡条件的服务器,作为目标服务器;
所述响应单元40,用于将所述服务请求转发至所述目标服务器,以使所述目标服务器响应所述服务请求。
其中,所述确定单元10,获取单元20,选择单元30,响应单元40的具体实现方式可参见上述图3所对应实施例中对步骤S301-步骤S304,上述图4所对应实施例中对步骤S403,上述图5所对应实施例中对步骤S505的描述,这里将不再继续进行赘述。
实施本发明实施例,通过获取服务请求确定需要响应的目标功能服务;查找包含目标功能服务的目标服务类,进而查找包含目标服务类的目标服务进程,并获取目标服务进程所在的至少一个服务器分别对应的负载信息;在至少一个服务器中选择满足负载均衡条件的服务器作为目标服务器;将获取的服务请求转发至目标服务器,使目标服务器响应该目标功能服务。由于选择满足负载均衡条件的服务器提供目标功能服务,使得计算资源得到最优配置,避免资源分配不均的情况;同时目标功能服务、目标服务类以及目标服务进程之间的单向层级架构关系,保证每一层服务结构对服务器产生不稳定性的概率最低,提高计算资源的使用率。
进一步地,请参见图7,图7是本发明实施例提供的另一种服务调度装置的结构示意图。如图7所示,所述服务调度装置1可以包含上述图6所对应实施例中的确定单元10,获取单元20,选择单元30,响应单元40;进一步的,所述服务调度装置1还可以包括:统计单元50,暂停单元60,
所述统计单元50,用于根据所述响应结果,统计响应失败的次数;
所述暂停单元60,用于若所述响应失败的次数大于预设的次数阈值,暂停所述目标服务器中的所述目标功能服务;
所述暂停单元60,还用于若所述目标服务类中的所有功能服务均被暂停,则暂停所述目标服务类;
所述暂停单元60,还用于若所述目标服务进程中的所有服务类被均暂停,则暂停所述目标服务进程。
其中,所述统计单元50和所述暂停单元60的具体实现方式可参见上述图5所对应实施例中对步骤S506-步骤S510的描述,这里将不再继续进行赘述。
进一步地,请参见图8,是本发明实施例提供的一种确定单元的结构示意图。如图8所示,所述确定单元10可以包括:解析子单元101和确定服务子单元102,
所述解析子单元101,用于获取并解析服务请求,得到所述服务请求的统一资源定位符;
所述确定服务子单元102,用于根据所述统一资源定位符,确定所述服务请求所请求的功能服务,并确定为目标功能服务。
其中,所述解析子单元101和确定服务子单元102的具体实现方法可参见上述图4所对应实施例中对步骤S401-步骤S402的描述,这里将不再继续进行赘述。
进一步地,请参见图9,是本发明实施例提供的一种获取单元的结构示意图。如图9所示,所述获取单元20可以包括:第一查找子单元201,第二查找子单元202,
所述第一查找子单元201,用于查找包含所述目标功能服务的目标服务类,并查找包含所述目标服务类的目标服务进程;
所述第二查找子单元202,用于查找所述目标服务进程所在的至少一个服务器,并获取所述至少一个服务器分别对应的负载信息。
其中,所述第一子单元201和第二子单元202的具体实现方法可参见上述图4所对应实施例中对步骤S404-步骤S405的描述,这里将不再继续进行赘述。
实施本发明实施例,通过获取服务请求确定需要响应的目标功能服务;查找包含目标功能服务的目标服务类,进而查找包含目标服务类的目标服务进程,并获取目标服务进程所在的至少一个服务器分别对应的负载信息;在至少一个服务器中选择满足负载均衡条件的服务器作为目标服务器;将获取的服务请求转发至目标服务器,使目标服务器响应该目标功能服务。由于选择满足负载均衡条件的服务器提供目标功能服务,使得计算资源得到最优配置,避免资源分配不均的情况;同时目标功能服务、目标服务类以及目标服务进程之间的单向层级架构关系,保证每一层服务结构对服务器产生不稳定性的概率最低,提高计算资源的使用率。
进一步地,请参见图10,图10是本发明实施例提供的一种电子设备的结构示意图。如图10所示,所述电子设备1000可以包括:处理器1002和存储器1005,进一步地,所述电子设备1000还可以包括:至少一个网络接口1004、输入/输出接口1003和通信总线1001。其中,通信总线1001用于实现这些组件之间的连接通信。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1002的存储装置。如图9所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、输入/输出接口模块以及设备控制应用程序。
在图10所示的电子设备1000中,输入/输出接口1003主要用于为数据的输入/输出提供接口,获取输入/输出的数据;而处理器1002可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取服务请求,并确定所述服务请求所请求响应的目标功能服务;
查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息;所述目标服务进程中的所述目标功能服务为未被暂停的功能服务;
根据所述负载信息,在所述至少一个服务器中选择满足负载均衡条件的服务器,作为目标服务器;
将所述服务请求转发至所述目标服务器,以使所述目标服务器响应所述服务请求。
在一个实施例中,所述处理器1002在执行所述查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息时,具体执行以下步骤:
查找包含所述目标功能服务的目标服务类,并查找包含所述目标服务类的目标服务进程;
查找所述目标服务进程所在的至少一个服务器,并获取所述至少一个服务器分别对应的负载信息
在一个实施例中,所述处理器1002在执行所述查找包含所述目标功能服务的目标服务进程,并获取所述目标服务进程所在的至少一个服务器分别对应的负载信息;所述目标服务进程中的所述目标功能服务为未被暂停的功能服务之前,还执行以下步骤:
获取服务器集群中的所有服务器的负载信息,所述服务器集群包括所述至少一个服务器。
在一个实施例中,所述处理器1002在执行所述获取服务请求,并确定所述服务请求所请求响应的目标功能服务时,具体执行以下步骤:
获取并解析服务请求,得到所述服务请求的统一资源定位符;
根据所述统一资源定位符,确定所述服务请求所请求的功能服务,并确定为目标功能服务。
在一个实施例中,所述处理器1002还执行以下步骤:
获取所述目标服务器响应所述目标功能服务的响应结果;
根据所述响应结果,统计响应失败的次数;
若所述响应失败的次数大于预设的次数阈值,暂停所述目标服务器中的所述目标功能服务。
在一个实施例中,所述处理器1002还执行以下步骤:
若所述目标服务类中的所有功能服务均被暂停,则暂停所述目标服务类;
若所述目标服务进程中的所有服务类被均暂停,则暂停所述目标服务进程;其中所述服务进程包括多个服务类,每个服务类包括至少一个功能服务;未被暂停的服务类中未被暂停的功能服务继续提供相应服务。
实施本发明实施例,通过获取服务请求确定需要响应的目标功能服务;查找包含目标功能服务的目标服务类,进而查找包含目标服务类的目标服务进程,并获取目标服务进程所在的至少一个服务器分别对应的负载信息;在至少一个服务器中选择满足负载均衡条件的服务器作为目标服务器;将获取的服务请求转发至目标服务器,使目标服务器响应该目标功能服务。由于选择满足负载均衡条件的服务器提供目标功能服务,使得计算资源得到最优配置,避免资源分配不均的情况;同时目标功能服务、目标服务类以及目标服务进程之间的单向层级架构关系,保证每一层服务结构对服务器产生不稳定性的概率最低,提高计算资源的使用率。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory;以下简称:ROM)、随机存取存储器(Random Access Memory;以下简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。