电子装置、服务器负载均衡方法及存储介质与流程

文档序号:16848861发布日期:2019-02-12 22:33阅读:193来源:国知局
电子装置、服务器负载均衡方法及存储介质与流程

本发明涉及服务器负载均衡领域,尤其涉及一种电子装置、服务器负载均衡方法及存储介质。



背景技术:

负载均衡技术普遍应用于服务器集群中,由独立的负载均衡软件或硬件,按照设定的负载均衡策略,将服务请求分发至集群中不同的服务器,达到整体服务器集群的处理均衡目的。

目前普遍采用的负载均衡策略均是基于随机分配或者平均分配的原则,上述两种分配原则均是假设集群中各服务器具有相似的处理能力,而在实际应用中集群中各服务器的性能参差不齐,并随着处理任务的不断积累而变化。因此,目前的负载均衡策略可能会导致在服务器资源消耗非常大的状况下,继续分配处理任务,从而使得服务器资源消耗殆尽,出现宕机的风险。



技术实现要素:

有鉴于此,本发明提出一种电子装置、服务器负载均衡方法及存储介质,能够避免服务器资源消耗殆尽,出现宕机的风险。

首先,为实现上述目的,本发明提出一种电子装置,所述电子装置包括存储器、及与所述存储器连接的处理器,所述处理器用于执行所述存储器上存储的服务器负载均衡程序,所述服务器负载均衡程序被所述处理器执行时实现如下步骤:

a1、按照预设的时间间隔获取预先确定的各服务器的运行参数;

a2、根据预先确定的运行参数分析规则分析所述运行参数,以确定各服务器的当前负载状态评分;

a3、根据预先存储的负载状态评分与负载优先级之间的映射关系,确定各个服务器的负载优先级;

a4、若接收到新的访问请求,则根据各个服务器的负载优先级确定处理所述访问请求的服务器。

优选地,在所述步骤a1中,所述各服务器的运行参数包括当前任务数;

所述步骤a2包括:

分别对各服务器预先确定的运行参数设置对应的预定义权重;

分别将各服务器预先确定的各个运行参数与各自对应的预定义权重进行求积运算,将得到的积运算结果进行求和得到各服务器的资源使用状态值;

分别将各服务器的当前任务数代入预定义的任务占比数计算公式进行分计算,得到各服务器的任务占比数;

分别将各服务器的资源使用状态值和任务占比数代入预先确定的负载状态评分公式进行计算,以得到各个服务器的负载状态评分。

优选地,所述预定义权重用于标识预先确定的各运行参数在衡量服务器的当前负载状态时所占的比重。

优选地,所述预定义的任务占比数的计算公式为:taskrate=100*当前任务数/最大连接数。

优选地,在所述步骤a1中,所述各服务器的运行参数还包括:cpu使用率、内存占用率、jvm堆内存使用率。

此外,为了实现上述目的,本发明还提出一种服务器负载均衡方法,所述方法包括如下步骤:

s1、按照预设的时间间隔获取预先确定的各服务器的运行参数;

s2、根据预先确定的运行参数分析规则分析所述运行参数,以确定各服务器的当前负载状态评分;

s3、根据预先存储的负载状态评分与负载优先级之间的映射关系,确定各个服务器的负载优先级;

s4、若接收到新的访问请求,则根据各个服务器的负载优先级确定处理所述访问请求的服务器。

优选地,在所述步骤s1中,所述各服务器的运行参数包括当前任务数;

所述步骤s2包括:

分别对各服务器预先确定的运行参数设置对应的预定义权重;

分别将各服务器预先确定的各个运行参数与各自对应的预定义权重进行求积运算,将得到的积运算结果进行求和得到各服务器的资源使用状态值;

分别将各服务器的当前任务数代入预定义的任务占比数计算公式进行分计算,得到各服务器的任务占比数;

分别将各服务器的资源使用状态值和任务占比数代入预先确定的负载状态评分公式进行计算,以得到各个服务器的负载状态评分。

优选地,所述预定义权重用于标识预先确定的各运行参数在衡量服务器的当前负载状态时所占的比重。

优选地,所述预定义的任务占比数的计算公式为:taskrate=100*当前任务数/最大连接数。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有服务器负载均衡程序,所述服务器负载均衡程序可被至少一个处理器执行,以使所述至少一个处理器执行如上所述的服务器负载均衡方法的步骤。

本发明所提出的电子装置、服务器负载均衡方法及存储介质,通过按照预设的时间间隔获取预先确定的各服务器的运行参数;根据预先确定的运行参数分析规则分析所述运行参数,以确定各服务器的当前负载状态评分;根据预先存储的负载状态评分与负载优先级之间的映射关系,确定各个服务器的负载优先级;若接收到新的访问请求,则根据各个服务器的负载优先级确定处理所述访问请求的服务器。能够避免服务器资源消耗殆尽,出现宕机的风险。

附图说明

图1是本发明提出的电子装置一可选的硬件架构的示意图;

图2是本发明电子装置一实施例中服务器负载均衡的程序模块示意图;

图3是本发明服务器负载均衡方法较佳实施例的实施流程图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参阅图1所示,是本发明提出的电子装置一可选的硬件架构示意图。本实施例中,电子装置10可包括,但不仅限于,可通过通信总线14相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图1仅示出了具有组件11-14的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

其中,存储器11至少包括一种类型的计算机可读存储介质,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器11可以是电子装置10的内部存储单元,例如电子装置10的硬盘或内存。在另一些实施例中,存储器11也可以是电子装置10的外包存储设备,例如电子装置10上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器11还可以既包括电子装置10的内部存储单元也包括其外包存储设备。本实施例中,存储器11通常用于存储安装于电子装置10的操作系统和各类应用软件,例如服务器负载均衡程序等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。处理器12通常用于控制电子装置10的总体操作。本实施例中,处理器12用于运行存储器11中存储的程序代码或者处理数据,例如运行的服务器负载均衡程序等。

网络接口13可包括无线网络接口或有线网络接口,网络接口13通常用于在电子装置10与其他电子设备之间建立通信连接。

通信总线14用于实现组件11-13之间的通信连接。

图1仅示出了具有组件11-14以及服务器负载均衡的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

可选地,电子装置10还可以包括用户接口(图1中未示出),用户接口可以包括显示器、输入单元比如键盘,其中,用户接口还可以包括标准的有线接口、无线接口等。

可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled触摸器等。进一步地,显示器也可称为显示屏或显示单元,用于显示在电子装置10中处理信息以及用于显示可视化的用户界面。

可选地,在一些实施例中,电子装置10还可以包括音频单元(音频单元图1中未示出),音频单元可以在电子装置10处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将接收的或者存储的音频数据转换为音频信号;进一步地,电子装置10还可以包括音频输出单元,音频输出单元将音频单元转换的音频信号输出,而且音频输出单元还可以提供与电子装置10执行的特定功能相关的音频输出(例如呼叫信号接收声音、消息接收声音等等),音频输出单元可以包括扬声器、蜂鸣器等等。

可选地,在一些实施例中,电子装置10还可以包括警报单元(图中未示出),警报单元可以提供输出已将事件的发生通知给电子装置10。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或者视频输出之外,警报单元可以以不同的方式提供输出以通知事件的发生。例如,警报单元可以以震动的形式提供输出,当接收到呼叫、消息或一些其他可以使电子装置10进入通信模式时,警报单元可以提供触觉输出(即,振动)以将其通知给用户。

在一实施例中,存储器11中存储的服务器负载均衡程序被处理器12执行时,实现如下操作:

a1,按照预设的时间间隔获取预先确定的各服务器的运行参数;

具体地,预设的时间间隔可以由用户自行设定或者根据不同时期内的访问请求量的多少进行动态调整。如在访问请求量较大的高峰时段,可以将预设的时间间隔调整为稍小一些,便于及时更新不同服务器的运行状况从而便于均衡分配不同的访问请求;在访问请求量较小的闲暇时段,可以将预设的时间间隔调整为稍大一些,以便于在实现不同服务器之间的负载差异较小的情形下减少服务器的工作量,从而减少资源浪费。服务器的运行参数包括但不限于cpu(centralprocessingunit)使用率、内存占用率(memrate)、jvm堆内存使用率(heaprate)、当前任务数(taskcount)。其中,cpu使用率是服务器中运行的程序占用的cpu资源,表示服务器在某个时间点的运行程序的情况。cpu使用率越高,说明该服务器在当前时间运行了较多程序,反之较少。内存占用率是指进程所开销的内存。jvm堆内存使用率针对的主要是java应用程序,jvm堆内存是建立在服务器内存上的,但是又跟内存不一样,属于服务器运行程序的一块内存,这块内存也是通常在项目中最关心的。任务数指的是服务器运行程序中处理任务的个数,是服务器运行程序的处理任务。例如:假设当前淘宝提交一个订单到某个服务器,则认为该服务器的任务数为1。

a2,分别根据预先确定的运行参数分析规则分析各服务器的运行参数,以确定各服务器的当前负载状态评分;

具体地,分别对各服务器预先确定的运行参数设置对应的预定义权重;

具体地,预定义权重用于标识预先确定的各个运行参数在衡量服务器的当前负载状态时所占的比重。运行参数的预设权重越大,说明该运行参数所占比重越大。同理,运行参数的预设权重越小,说明该运行参数所占比重越小。在本实施例中,预先确定的运行参数包括jvm堆内存、cpu的使用率以及内存占用率。具体地,优先考虑jvm堆内存和cpu使用率,因此jvm堆内存和cpu的权重占比较高,又由于服务器中会有其他软件运行,因此也考虑了服务器内存的影响,但权重占比较低。例如,设置的jvm堆内存使用率(heaprate)的预定义权重为50%,cpu使用率的预定义权重为40%,内存占用率的预定义权重为10%。

分别将各服务器预先确定的各个运行参数与各自对应的预定义权重进行求积运算,将得到的积运算结果进行求和得到各服务器的资源使用状态值;

分别将各服务器的当前任务数代入预定义的任务占比数计算公式进行分计算,得到各服务器的任务占比数;

具体地,所述预定义的任务占比数的计算公式为:taskrate=100*当前任务数/最大连接数。

分别将各服务器的资源使用状态值和任务占比数代入预先确定的负载状态评分公式进行计算,以得到各个服务器的负载状态评分。

具体地,所述预先确定的负载状态评分公式为:priority=usage*0.8+(100-taskrate)*0.2。

a3,根据预先存储的负载状态评分与负载优先级之间的映射关系,确定各个服务器的负载优先级;

具体地,负载状态评分越高,说明当前负载状态越空闲,其对应的优先级越高,同样的,负载状态评分越低,说明当前负载状态越忙碌,其对应的优先级越低。

a4,若接收到新的访问请求,则根据各个服务器的负载优先级确定处理所述访问请求的服务器。

具体地,若接收到新的访问请求,则首先确定优先级最高的服务器来处理该访问请求。若在预设的时间间隔之内接收到多个访问请求,可以将按照接收访问请求的时间先后顺序排序将各个访问请求依次分配到对应同一优先级的不同服务器上。需要说明的是,由于在预设的时间间隔之内接收到的访问请求的数量可能出现多于同一优先级的服务器的数量,则需按照时间先后顺序将访问请求依次分配到对应同一优先级的各个服务器上,并在同一优先级的全部的服务器均接收了一个访问请求之后,按照服务器的优先级顺序进行第二轮次的分配。

由上述实施例可知,本发明提出的电子装置,通过按照预设的时间间隔获取预先确定的各服务器的运行参数;根据预先确定的运行参数分析规则分析所述运行参数,以确定各服务器的当前负载状态评分;根据预先存储的负载状态评分与负载优先级之间的映射关系,确定各个服务器的负载优先级;若接收到新的访问请求,则根据各个服务器的负载优先级确定处理所述访问请求的服务器。能够避免服务器资源消耗殆尽,出现宕机的风险。

此外,本发明的服务器负载均衡程序依据其各部分所实现的功能不同,可用具有相同功能的程序模块进行描述。请参阅图2所示,是本发明电子装置一实施例中服务器负载均衡的程序模块示意图。本实施例中,服务器负载均衡依据其各部分所实现的功能的不同,可以被分割成获取模块201、分析模块202、第一确定模块203、以及第二确定模块204。由上面的描述可知,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述服务器负载均衡程序在电子装置10中的执行过程。所述模块201-204所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如其中:

获取模块201用于按照预设的时间间隔获取预先确定的各服务器的运行参数;

分析模块202用于根据预先确定的运行参数分析规则分析所述运行参数,以确定各服务器的当前负载状态评分;

第一确定模块203用于根据预先存储的负载状态评分与负载优先级之间的映射关系,确定各个服务器的负载优先级;

第二确定模块204用于在若接收到新的访问请求,则根据各个服务器的负载优先级确定处理所述访问请求的服务器。

此外,本发明还提出一种服务器负载均衡方法,请参阅图3所示,所述服务器负载均衡方法包括如下步骤:

s301,按照预设的时间间隔获取预先确定的各服务器的运行参数;

具体地,预设的时间间隔可以由用户自行设定或者根据不同时期内的访问请求量的多少进行动态调整。如在访问请求量较大的高峰时段,可以将预设的时间间隔调整为稍小一些,便于及时更新不同服务器的运行状况从而便于均衡分配不同的访问请求;在访问请求量较小的闲暇时段,可以将预设的时间间隔调整为稍大一些,以便于在实现不同服务器之间的负载差异较小的情形下减少服务器的工作量,从而减少资源浪费。服务器的运行参数包括但不限于cpu(centralprocessingunit)使用率、内存占用率(memrate)、jvm堆内存使用率(heaprate)、当前任务数(taskcount)。其中,cpu使用率是服务器中运行的程序占用的cpu资源,表示服务器在某个时间点的运行程序的情况。cpu使用率越高,说明该服务器在当前时间运行了较多程序,反之较少。内存占用率是指进程所开销的内存。jvm堆内存使用率针对的主要是java应用程序,jvm堆内存是建立在服务器内存上的,但是又跟内存不一样,属于服务器运行程序的一块内存,这块内存也是通常在项目中最关心的。任务数指的是服务器运行程序中处理任务的个数,是服务器运行程序的处理任务。例如:假设当前淘宝提交一个订单到某个服务器,则认为该服务器的任务数为1。

s302,分别根据预先确定的运行参数分析规则分析各服务器的运行参数,以确定各服务器的当前负载状态评分;

具体地,分别对各服务器预先确定的运行参数设置对应的预定义权重;

具体地,预定义权重用于标识预先确定的各个运行参数在衡量服务器的当前负载状态时所占的比重。运行参数的预设权重越大,说明该运行参数所占比重越大。同理,运行参数的预设权重越小,说明该运行参数所占比重越小。在本实施例中,预先确定的运行参数包括jvm堆内存、cpu的使用率以及内存占用率。具体地,优先考虑jvm堆内存和cpu使用率,因此jvm堆内存和cpu的权重占比较高,又由于服务器中会有其他软件运行,因此也考虑了服务器内存的影响,但权重占比较低。例如,设置的jvm堆内存使用率(heaprate)的预定义权重为50%,cpu使用率的预定义权重为40%,内存占用率的预定义权重为10%。

分别将各服务器预先确定的各个运行参数与各自对应的预定义权重进行求积运算,将得到的积运算结果进行求和得到各服务器的资源使用状态值;

分别将各服务器的当前任务数代入预定义的任务占比数计算公式进行分计算,得到各服务器的任务占比数;

具体地,所述预定义的任务占比数的计算公式为:taskrate=100*当前任务数/最大连接数。

分别将各服务器的资源使用状态值和任务占比数代入预先确定的负载状态评分公式进行计算,以得到各个服务器的负载状态评分。

具体地,所述预先确定的负载状态评分公式为:priority=usage*0.8+(100-taskrate)*0.2。

s303,根据预先存储的负载状态评分与负载优先级之间的映射关系,确定各个服务器的负载优先级;

具体地,负载状态评分越高,说明当前负载状态越空闲,其对应的优先级越高,同样的,负载状态评分越低,说明当前负载状态越忙碌,其对应的优先级越低。

s304,若接收到新的访问请求,则根据各个服务器的负载优先级确定处理所述访问请求的服务器。

具体地,若接收到新的访问请求,则首先确定优先级最高的服务器来处理该访问请求。若在预设的时间间隔之内接收到多个访问请求,可以将按照接收访问请求的时间先后顺序排序将各个访问请求依次分配到对应同一优先级的不同服务器上。需要说明的是,由于在预设的时间间隔之内接收到的访问请求的数量可能出现多于同一优先级的服务器的数量,则需按照时间先后顺序将访问请求依次分配到对应同一优先级的各个服务器上,并在同一优先级的全部的服务器均接收了一个访问请求之后,按照服务器的优先级顺序进行第二轮次的分配。

由上述实施例可知,本发明提出的服务器负载均衡方法,通过按照预设的时间间隔获取预先确定的各服务器的运行参数;根据预先确定的运行参数分析规则分析所述运行参数,以确定各服务器的当前负载状态评分;根据预先存储的负载状态评分与负载优先级之间的映射关系,确定各个服务器的负载优先级;若接收到新的访问请求,则根据各个服务器的负载优先级确定处理所述访问请求的服务器。能够避免服务器资源消耗殆尽,出现宕机的风险。

此外,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有服务器负载均衡程序,所述服务器负载均衡程序被处理器执行时实现如下操作:

按照预设的时间间隔获取预先确定的各服务器的运行参数;

根据预先确定的运行参数分析规则分析所述运行参数,以确定各服务器的当前负载状态评分;

根据预先存储的负载状态评分与负载优先级之间的映射关系,确定各个服务器的负载优先级;

若接收到新的访问请求,则根据各个服务器的负载优先级确定处理所述访问请求的服务器。

本发明计算机可读存储介质的具体实施过程,与上述电子装置以及服务器负载均衡方法的具体实施过程类似,在此不再赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,电子装置,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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