一种服务器动态控制方法及服务器与流程

文档序号:21405786发布日期:2020-07-07 14:39阅读:180来源:国知局
一种服务器动态控制方法及服务器与流程

本发明涉及服务器技术领域,特别涉及一种服务器动态控制方法及服务器。



背景技术:

服务器框架下的各服务器的部署是分布式的,各服务器均为单独部署运行的且彼此通过总线交互,即各服务器之间存在依赖性,并且各服务器仅获知其依赖的服务器,而无法获取依赖其的服务器,这样当服务器未按要求被加载时,无法及时通知依赖所述服务器的服务器,使得依赖所述服务器的所有服务器均无法按需工作,进而可能会造成服务器出现雪崩宕机问题。



技术实现要素:

鉴于现有技术的不足,本发明旨在提供一种服务器动态控制方法及服务器。

本发明所采用的技术方案如下:

一种服务器动态控制方法,其包括:

当服务器启动时,通过预设的状态服务器获取所述服务器对应的依赖服务器的第一服务等级;

在将第一服务请求发送至所述依赖服务器时,根据所述第一服务等级对第一服务请求进行筛选,并向所述依赖服务器发送筛选后的第一服务请求。

所述服务器动态控制方法,其中,所述当服务器启动时,通过预设的状态服务器获取所述服务器对应的依赖服务器的第一服务等级具体包括:

当服务器启动时,获取其自身的依赖服务信息,并将所述依赖服务信息发送至预设的状态服务器;

以供所述状态服务器根据所述依赖服务信息确定依赖服务器的第一服务等级。

所述服务器动态控制方法,其中,所述在将第一服务请求发送至所述依赖服务器时,根据所述第一服务等级对第一服务请求进行筛选,并向所述依赖服务器发送筛选后的第一服务请具体包括:

在将第一服务请求发送至所述依赖服务器时,根据所述依赖服务器的第一服务等级确定其对应的第一筛选规则;

按照所述第一筛选规则对其对应的所有第一服务请求进行筛选,并向所述依赖服务器发送筛选后的第一服务请求。

所述服务器动态控制方法,其中,所述方法还包括:

判断所述依赖服务器的第一服务等级是否达到预设服务等级阈值;

当所述第一服务等级达到预设服务等级阈值时,将所述依赖服务器标记为异常服务器。

所述服务器动态控制方法,其中,所述方法还包括:

在接收依赖所述服务器的服务器发送的第二服务请求时,获取其自身的第二服务等级;

根据所述第二服务等级对所述第二服务请求进行筛选,并响应筛选后的第二服务请求。

所述服务器动态控制方法,其中,所述根据所述第二服务等级对所述第二服务请求进行筛选,并响应筛选后的第二服务请求具体包括:

获取所述第二服务等级对应的第二筛选规则,并判断第二服务请求是否携带请求等级;

当所有第二服务请求均未携带服务等级时,根据所述第二筛选规则对第二服务请求进行随机筛选,并响应筛选后的第二服务请求;

当存在第二服务请求携带服务等级时,根据所述第二筛选规则按照服务等级对第二服务请求进行筛选,并响应筛选后的第二服务请求。

一种服务器动态控制方法,其中,所述方法包括:

状态服务器获取其连接的各服务器的服务类型,并根据获取到的服务类型将其连接的所有服务器进行分组;

获取各组服务器组的服务等级均值,并将所述服务等级均值作为其对应的服务器组内的各服务器的第一服务等级,以供各服务器获取其对应的依赖服务器的第一服务等级。

所述服务器动态控制方法,其中,所述方法还包括:

状态服务器接收其连接的服务器发送的依赖服务信息,并根据接收到的依赖服务信息生成依赖关系图;

将所述依赖关系图发送至服务器,以使得服务器根据所述依赖关系图确定其对应的依赖服务器。

一种服务器,其包括:第二处理器及第二存储器;

所述第二存储器上存储有可被所述处理器执行的计算机可读程序;

所述第二处理器执行所述计算机可读程序时实现如权利要求7-8任意一项所述的服务器动态控制方法中的步骤。

有益效果:与现有技术相比,本发明提供了一种服务器动态控制方法及服务器,所述方法包括:当服务器启动时,通过预设的状态服务器获取所述服务器对应的依赖服务器的第一服务等级;在将第一服务请求发送至所述依赖服务器时,根据所述第一服务等级对第一服务请求进行筛选,并向所述依赖服务器发送筛选后的第一服务请。本发明通过服务器主动根据依赖服务器的服务等级对服务请求进行筛选,以根据依赖服务器的服务等级发送相应数量的服务请求,避免依赖服务器因服务请求堵塞而造成宕机的问题。

附图说明

图1为本发明提供的服务器动态控制方法的实施例一的流程图。

图2为本发明提供的服务器动态控制方法的实施例一中步骤s10的流程图。

图3为本发明提供的服务器动态控制方法的实施例一中步骤s12的流程图。

图4为本发明提供的服务器动态控制方法的实施例一中步骤s20的流程图。

图5为本发明提供的服务器动态控制方法的实施例二的流程图。

图6为本发明提供的一种服务器的一个实施例的结构原理图。

图7为本发明提供的一种服务器的另一个实施例的结构原理图。

具体实施方式

本发明提供一种服务器动态控制方法及服务器,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

下面结合附图,通过对实施例的描述,对发明内容作进一步说明。

实施例一

本实施例提供了一种服务器动态控制方法,如图1所示,所述方法包括:

s10、当服务器启动时,通过预设的状态服务器获取所述服务器对应的依赖服务器的第一服务等级。

具体地,所述服务器为微服务器框架下的服务器,其可以是一个服务模块,也可以是服务器。所述依赖服务器为所述服务器实现其配置的功能所依赖的服务器,所述依赖服务器为所述微服务器框架下的服务器,并且所述依赖服务器可以是微服务器框架下其服务器的依赖服务器,也可以依赖微服务器框架下其他服务器。所述状态服务器为预先建立,并与所述微服务框架内的各服务器均相互通讯,用于接收各服务器发送的信息并向各服务器反馈其依赖的依赖服务器的状态。也就是说,所述状态服务器用于收集各服务器的依赖服务信息,并根据所述依赖服务信息生成服务器框架中各服务器的依赖关系拓扑图,通过所述依赖关系拓扑图可以快速确定各服务器的依赖服务器。当然,在实际应用中,所述状态服务器可以预先存储各服务器之间的依赖关系,并根据所述依赖关系生成依赖关系拓扑图,而各服务器启动时,仅需向所述状态服务器发送请求,所述状态服务器会根据所述服务器的服务器标识查找到其依赖的各依赖服务器,并将各依赖服务器的第一服务等级反馈至服务器。

示例性,如图2所示,所述当服务器启动时,通过预设的状态服务器获取所述服务器对应的依赖服务器的第一服务等级具体包括:

s11、当服务器启动时,获取其自身的依赖服务信息,并将获取所述依赖服务信息发送至预设的状态服务器;

s12、以供所述状态服务器根据所述依赖服务信息确定所述依赖服务器的第一服务等级。

具体地,所述依赖服务信息包括服务器依赖的各服务器的第一服务器标识,也就是说,根据所述依赖服务信息可以确定所述服务器依赖的所有依赖服务器的第一服务器标识。此外,所述依赖服务信息还可以包括所述服务器的第二服务器标识以及所述服务器的筛选标准、内存状态,cpu状态,webio状态,硬盘io状态,间隔时段平均吞吐,最大吞吐等信息,以便于状态服务器根据所述依赖服务信息确定所述服务器的第二服务等级。其中,所述筛选标准可以按照服务等级划分为高、中和低,其中,所述高、中和低等级分别对应cpu使用率区间,例如,低服务等级对于70-80,中服务等级对于80-85,高等级对应85-90。此外,每个服务等级均配置有第一筛选规则,例如,低服务等级对应的第一筛选规则为cpu使用率每升高一点,随机丢弃10%低请求等级的服务请求;中服务等级对应的第一筛选规则为cpu使用率每升高一点,随机丢弃20%中请求等级的服务请求,高服务等级对应的第一筛选规则为cpu使用率每升高一点,随机丢弃20%高请求等级的服务请求。其中,所述请求等级是服务请求自身携带,而当服务请求为携带请求等级时,将服务请求默认为低等级服务请求。此外,值得注意的,所述每个服务等级均配置有第一筛选规则可以根据需求进行调整,但是,每个服务等级均配置有第一筛选规则对应的降低之和为100%。

s20、在将第一服务请求发送至所述依赖服务器时,根据所述第一服务等级对第一服务请求进行筛选,并向所述依赖服务器发送筛选后的第一服务请求。

具体地,所述第一服务请求为所述服务器待发送至依赖服务器的请求,所述第一服务请求为多个。当获取到依赖服务器的第一服务等级时,可以所述第一服务等级对所述第一服务请求进行限流,即对所述第一服务请求的数量进行降级。所述第一服务等级对应第一筛选规则,根据所述第一筛选规则对所述第一服务请求进行筛选。相应的,如图3所示,所述在将第一服务请求发送至所述依赖服务器时,根据所述第一服务等级对第一服务请求进行筛选,并向所述依赖服务器发送筛选后的第一服务请具体包括:

s21、在将第一服务请求发送至所述依赖服务器时,根据所述依赖服务器的第一服务等级确定其对应的第一筛选规则;

s22、按照所述第一筛选规则对其对应的所有第一服务请求进行筛选,并向所述依赖服务器发送筛选后的第一服务请求。

具体地,所述第一筛选规则为依赖服务器预先配置的,并通过状态服务器发送至服务器的。所述对所有第一服务请求进行筛选指的是按照第一筛选规则降低第一服务请求的数量,以减少第一服务请求对依赖服务器造成的压力。例如,当所述第一服务等级为低级时,获取所述第一服务等级对应的cpu使用率,计算所述cpu使用率与第一服务等级对应的cpu使用率的下限值的差值,并根据所述差值来确定数量减少的比例,并按照所述比例减少第一服务请求的数量。当然,在实际应用中,所述服务器发送至依赖服务器的各第一服务请求可以具有不同的服务等级,这样当根据第一筛选规则对第一服务请求进行筛选时,首先根据各第一服务请求的服务等级将个第一服务请求进行分组,之后确定所述第一服务等级对应的请求等级,并按照第一筛选规则对该请求等级对应的第一服务请求分组进行筛选。其中,为携带请求等级的第一服务请求默认为最低级别的服务请求,并所述服务等级与请求等级的对应关系为根据所述筛选条件确。

进一步,为了保证服务可以快速确定各依赖服务器是否处于异常状态,当服务器处于异常状态时,状态服务器为所述服务器配置异常标识。相应的,所述方法还包括:

判断所述依赖服务器的第一服务等级是否达到预设服务等级阈值;

当所述第一服务等级达到预设服务等级阈值时,将所述依赖服务器标记为异常服务器。

具体地,所述预设服务等级阈值为预先设置,用于判断服务器是否处于异常状态。在本实施例中,所述预设服务等级阈值为cpu使用率阈值,例如,所述预设服务等级阈值为90,也就是说,当第一服务等级达到90时,所述依赖服务器被标记为异常服务器,此时,服务器不向所述依赖服务器发送第一服务请求,或者降低发送第一服务请求的数量。此外,为了快速获知所述异常服务器的当前状态,服务器可以通过将第一服务请求数量降级的方式来试探所述异常服务器。

示例性的,所述当所述第一服务等级达到预设服务等级阈值时,将所述依赖服务器标记为异常服务器之后还包括:

每间隔预设时间通过状态服务器获取异常服务器的服务器状态;

若所述服务器状态为异常,则按照比例减少第一服务请求的数量,并将减少后的第一服务请求发送至依赖服务器;

记录减少后的第一服务请求失败的第一失败比例,并将所述第一失败比例与前一次的第二失败比例进行比较;

若所述第一失败比例大于第二失败比例,则按照比例减少第一服务请求数量;

若所述第一失败比例小于第二失败比例,则按照比例增加第一服务请求数量;

重复发送第一服务请求的操作直至异常服务器恢复正常或者当前请求数量符合异常服务器。

具体地,所述比例为预先设置的,例如,20%等。也就是说,当服务状态为异常时,将第一服务请求的数量降低20%后发送至处于异常的依赖服务器,并当前周期第一服务请求的第一失败比例,将当前周期的第一失败比例与前一周期的第二失败比例进行比较,如果当前周期的第一失败比例高于前一周期的第二失败比例,则将当前周期的第一服务请求的数量降低20%后发送至处于异常的依赖服务器,如果当前周期的第一失败比例低于前一周期的第二失败比例,将当前周期的第一服务请求的数量升高20%后发送至处于异常的依赖服务器,依次类推直至状态服务器恢复正常或者当前请求数量符合异常服务器。

实施例二

本实施例提供了一种服务器动态控制方法,如图4所示,所述方法包括:

h10、当服务器启动时,通过预设的状态服务器获取所述服务器对应的依赖服务器的第一服务等级;

h20、在将第一服务请求发送至所述依赖服务器时,根据所述第一服务等级对第一服务请求进行筛选,并向所述依赖服务器发送筛选后的第一服务请;

h30、在接收依赖所述服务器的服务器发送的第二服务请求时,获取其自身的第二服务等级;

h40、根据所述第二服务等级对所述第二服务请求进行筛选,并响应筛选后的第二服务请求。

具体地,所述第二服务请求为所述服务器接收到服务请求,即依赖所述服务器的服务器发送给所述服务器的服务请求。服务器当接收到第二服务请求时,获取其自身的第二服务等级,根据所述第二服务等级对所述第二请求进行筛选,实现了服务器的双向筛选,即实现了双向限流。

示例性的,所述根据所述第二服务等级对所述第二服务请求进行筛选,并响应筛选后的第二服务请求具体包括:

获取所述第二服务等级对应的第二筛选规则,并判断第二服务请求是否携带请求等级;

当所有第二服务请求均未携带服务等级时,根据所述第二筛选规则对第二服务请求进行随机筛选,并响应筛选后的第二服务请求;

当存在第二服务请求携带服务等级时,根据所述第二筛选规则按照服务等级对第二服务请求进行筛选,并响应筛选后的第二服务请求。

具体地,所述筛选过程与服务器对第一服务请求的筛选过程中,当第二服务请求未携带请求等级时,则将第二服务请求的请求等级默认为低请求等级。之后根据服务等级对应的请求等级的第二筛选规则进行筛选。例如,当所述第二服务等级处于中级时,将所述低请求等级的第二服务请求筛选掉,并根据第二服务等级对应的cpu使用率和中级服务等级的下限值确定中级请求等级的第二服务请求的筛选数量,并按照所述筛选数量随机筛选掉第二服务请求。

实施例三

本实施例提供了一种服务器动态控制方法,如图5所示,所述方法包括:

m10、状态服务器获取其连接的各服务器的服务类型,并根据获取到的服务类型将其连接的所有服务器进行分组;

m20、获取各组服务器组的服务等级均值,并将所述服务等级均值作为其对应的服务器组内的各服务器的第一服务等级,以供各服务器获取其对应的依赖服务器的第一服务等级。

具体地,所述状态服务器为预先配置,并与微服务框架下的各服务器相连接,并相互通讯。状态服务器可以获取其连接的各服务器的服务类型,其中,状态服务器连接的各服务器处于同一微服务框架下。也就是说,所述状态服务器对应一个微服务框架,并且仅于该微服务框架下的服务器相连接。此外,所述微服务器框架可以配置多个用于实现相同服务的服务器,但是实现相同服务的各服务器的性能不一样,从而为了避免服务能力差异化,在通过状态服务器获取各依赖服务器的第一服务等级时,状态服务器会获取各服务对应的所有服务器的第一服务等级的标准值,并将所述标准值作为各服务器的第一服务等级。

进一步,所述服务等级均值可以是根据各服务器组内各服务器的服务等级加权得到,其中,各服务器的权重系数可以根据各服务器的自身性能而确定。例如,用于执行a服务的服务器为3个,所述状态服务器获取到3个a服务的依赖服务信息,所述三个依赖服务信息可以分别为“cpu使用率:60、权重:10、名称:aserver、id:123”;“cpu使用率:80、权重:5、名称:aserver、id:234”;“cpu使用率:80、权重:5、”名称:aserver、id:345”,那么根据所述三个依赖服务信息可以得到a服务的服务器组的服务等级均值=(60*10+80*5+80*5)/(10+5+5)=70。

进一步,所述状态服务器在确定各服务器的第一服务等级的同时,还确定各服务器依赖关系的拓扑图。相应的,所述服务器动态控制方法还包括:

状态服务器接收其连接的服务器发送的依赖服务信息,并根据接收到的依赖服务信息生成依赖关系图;

将所述依赖关系图发送至服务器,以使得服务器根据所述依赖关系图确定其对应的依赖服务器。

具体地,所述依赖关系图为微服务框架下各服务器的依赖关系的拓扑图,根据所述生成依赖关系图可以确定服务器依赖的所有依赖服务器,以及依赖该服务器的所有服务器,以使得服务器可以从所述状态服务器获取到其依赖的服务器。

基于上述的服务器动态控制方法,本发明还提供了一种服务器,如图6所示,其包括:第一处理器102以及第一存储器101;

所述第一存储器101上存储有可被所述处理器执行的计算机可读程序;

所述第一处理器102执行所述计算机可读程序时实现实施例一和实施例二中所述的服务器动态控制方法中的步骤。

基于上述的服务器动态控制方法,本发明还提供了一种服务器,如图7所示,其包括:第二处理器202及第二存储器201;

所述第二存储器201上存储有可被所述处理器执行的计算机可读程序;

所述第二处理器202执行所述计算机可读程序时实现实施例三中所述的服务器动态控制方法中的步骤。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1