调度服务器、负载均衡方法、系统和可读存储介质与流程

文档序号:16390272发布日期:2018-12-22 11:20阅读:204来源:国知局
调度服务器、负载均衡方法、系统和可读存储介质与流程

本发明涉及通信技术领域,特别涉及一种调度服务器、负载均衡方法、系统和可读存储介质。

背景技术

随着人们生活水平的提高,人们对智能硬件设备(智能硬件设备指的是通过软硬件结合的方式,对传统设备进行改造,进而让其拥有智能化的功能,智能化之后,硬件设备具备连接的能力,实现互联网服务的加载,具备了大数据等附加价值,例如,智能手机、智能手表、智能电视、智能手环等)的需求也越来越大。

目前,智能硬件设备的现有应用场景通常是智能硬件设备直接与业务服务器通信连接,或者,智能硬件设备通过预设类型的用户终端设备(例如,个人计算机)与业务服务器通信连接。智能硬件设备的这种现有应用场景的缺陷在于:单个业务服务器需要固定对接处理多个智能硬件设备的数据处理需求,单个业务服务器的负载经常面临突增、突降、持续过载、持续负载过轻的情况,一旦某个业务服务器宕机,将导致与其进行数据交互的所有智能硬件设备无法正常进行数据交互,影响用户的正常使用。



技术实现要素:

本发明提供一种调度服务器、负载均衡方法、系统和可读存储介质,旨在保证在某个业务服务器发生故障时不影响该业务服务器对应的智能硬件设备的正常使用。

为实现上述目的,本发明提出一种调度服务器,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的负载均衡程序,所述负载均衡程序被所述处理器执行时实现如下步骤:

侦测通信连接的各个业务服务器的工作状态;

根据所述各业务服务器的工作状态判断各业务服务器是否发生异常,若判断某个业务服务器发生异常,则根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出发生异常的业务服务器连接的所有智能硬件设备;

将确定出的各个智能硬件设备按照预先确定的分配规则分配给正常工作的业务服务器,并建立确定出的每个智能硬件设备与分配的业务服务器的通信连接。

优选地,所述侦测通信连接的各个业务服务器的工作状态的步骤包括:

实时或者定时接收通信连接的业务服务器发送的连接状态数据包;

所述根据所述各业务服务器的工作状态判断各业务服务器是否发生异常的步骤包括:

若在预设时间内未收到通信连接的某个业务服务器发送的所述连接状态数据包,则判断该业务服务器发生异常。

优选地,所述侦测通信连接的各个业务服务器的工作状态的步骤包括:

定时或者实时向通信连接的业务服务器发送连接状态测试包,并从通信连接的业务服务器接收与该连接状态测试包对应的响应信息;

所述根据所述各业务服务器的工作状态判断各业务服务器是否发生异常的步骤包括:

若在预设时间内未收到通信连接的某个业务服务器发送的所述响应信息,则判断该业务服务器发生异常。

优选地,在建立确定出的每个智能硬件设备与其分配到的业务服务器的通信连接的步骤之后,所述处理器还用于执行所述负载均衡程序以实现如下步骤:更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

优选地,所述负载均衡程序被所述处理器执行时还实现如下步骤:

当判断一个业务服务器发生异常时,向预先确定的终端设备发送预设格式的提醒信息。

优选地,所述预先确定的分配规则包括:

将确定出的各个智能硬件设备随机分配给正常工作的业务服务器;或者,

从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第一业务服务器,将确定出的各个智能硬件设备随机分配给各个第一业务服务器;或者,

从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第二业务服务器,若确定出的各个智能硬件设备的数量小于或者等于所述第二业务服务器的数量,则将确定出的各个智能硬件设备一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备的数量大于第二业务服务器的数量,则将各个第二业务服务器按照其当前预设类型负载指标参数值大小从小到大排序,并按照该排序顺序将确定出的各个智能硬件设备分配给各个第二业务服务器。

优选地,所述按照该排序顺序将确定出的各个智能硬件设备分配给各个第二业务服务器的步骤包括:

a1、从确定出的各个智能硬件设备中,随机指定与所述第二业务服务器的数量相等的数量的智能硬件设备,将当前指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a2、若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量小于确定出的业务服务器的数量,则将剩余未分配的各个智能硬件设备按照第二业务服务器的排序顺序一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量大于或者等于所述第二业务服务器的数量,则从剩余未分配的智能硬件设备中,随机指定与第二业务服务器的数量相等的数量的智能硬件设备,并将指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a3、重复执行上述步骤a2,直到所有确定出的智能硬件设备均分配完毕。

优选地,所述负载均衡程序被所述处理器执行时还实现如下步骤:

接收通信连接的各个智能硬件设备发送的连接状态数据包,若在预设时间内未收到某个通信连接的智能硬件设备发送的所述连接状态数据包,则判断该智能硬件设备发生异常,根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定发生异常的智能硬件设备连接的第三业务服务器;

分析所述第三业务服务器的当前预设类型负载指标参数值是否小于第二预设阈值;

若所述第三业务服务器的当前预设类型负载指标参数值小于第二预设阈值,则从正常工作的业务服务器中,筛选出当前预设类型负载指标参数值最大的第四业务服务器;

若所述第四业务服务器的当前预设类型负载指标参数值大于所述第三业务服务器的当前预设类型负载指标参数值,且所述第四业务服务器的当前预设类型负载指标参数值与所述第三业务服务器的当前预设类型负载指标参数值的差值大于第三预设阈值,则从与所述第四业务服务器通信连接的智能硬件设备中随机指定一个智能硬件设备,并将所述指定的智能硬件设备分配给所述第三业务服务器并建立所述指定的智能硬件设备与所述第三业务服务器的通信连接,更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

本发明还提出一种负载均衡方法,该负载均衡方法包括步骤:

侦测通信连接的各个业务服务器的工作状态;

根据所述各业务服务器的工作状态判断各业务服务器是否发生异常,若判断某个业务服务器发生异常,则根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出发生异常的业务服务器连接的所有智能硬件设备;

将确定出的各个智能硬件设备按照预先确定的分配规则分配给正常工作的业务服务器,并建立确定出的每个智能硬件设备与分配的业务服务器的通信连接。

优选地,所述侦测通信连接的各个业务服务器的工作状态的步骤包括:

实时或者定时接收通信连接的业务服务器发送的连接状态数据包;

所述根据所述各业务服务器的工作状态判断各业务服务器是否发生异常的步骤包括:

若在预设时间内未收到通信连接的某个业务服务器发送的所述连接状态数据包,则判断该业务服务器发生异常。

优选地,所述侦测通信连接的各个业务服务器的工作状态的步骤包括:

定时或者实时向通信连接的业务服务器发送连接状态测试包,并从通信连接的业务服务器接收与该连接状态测试包对应的响应信息;

所述根据所述各业务服务器的工作状态判断各业务服务器是否发生异常的步骤包括:

若在预设时间内未收到通信连接的某个业务服务器发送的所述响应信息,则判断该业务服务器发生异常。

优选地,在建立确定出的每个智能硬件设备与分配的业务服务器的通信连接的步骤之后,该负载均衡方法还包括:更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

优选地,该负载均衡方法还包括:

当判断一个业务服务器发生异常时,向预先确定的终端设备发送预设格式的提醒信息。

优选地,所述预先确定的分配规则包括:

将确定出的各个智能硬件设备随机分配给正常工作的业务服务器;或者,

从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第一业务服务器,将确定出的各个智能硬件设备随机分配给各个第一业务服务器;或者,

从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第二业务服务器,若确定出的各个智能硬件设备的数量小于或者等于所述第二业务服务器的数量,则将确定出的各个智能硬件设备一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备的数量大于第二业务服务器的数量,则将各个第二业务服务器按照其当前预设类型负载指标参数值大小从小到大排序,并按照该排序顺序将确定出的各个智能硬件设备分配给各个第二业务服务器。

优选地,所述按照该排序顺序将确定出的各个智能硬件设备分配给各个第二业务服务器的步骤包括:

a1、从确定出的各个智能硬件设备中,随机指定与所述第二业务服务器的数量相等的数量的智能硬件设备,将当前指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a2、若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量小于确定出的业务服务器的数量,则将剩余未分配的各个智能硬件设备按照第二业务服务器的排序顺序一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量大于或者等于所述第二业务服务器的数量,则从剩余未分配的智能硬件设备中,随机指定与第二业务服务器的数量相等的数量的智能硬件设备,并将指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a3、重复执行上述步骤a2,直到所有确定出的智能硬件设备均分配完毕。

优选地,该负载均衡方法还包括:

接收通信连接的各个智能硬件设备发送的连接状态数据包,若在预设时间内未收到某个通信连接的智能硬件设备发送的所述连接状态数据包,则判断该智能硬件设备发生异常,根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定发生异常的智能硬件设备连接的第三业务服务器;

分析所述第三业务服务器的当前预设类型负载指标参数值是否小于第二预设阈值;

若所述第三业务服务器的当前预设类型负载指标参数值小于第二预设阈值,则从正常工作的业务服务器中,筛选出当前预设类型负载指标参数值最大的第四业务服务器;

若所述第四业务服务器的当前预设类型负载指标参数值大于所述第三业务服务器的当前预设类型负载指标参数值,且所述第四业务服务器的当前预设类型负载指标参数值与所述第三业务服务器的当前预设类型负载指标参数值的差值大于第三预设阈值,则从与所述第四业务服务器通信连接的智能硬件设备中随机指定一个智能硬件设备,并将所述指定的智能硬件设备分配给所述第三业务服务器并建立所述指定的智能硬件设备与所述第三业务服务器的通信连接,更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有负载均衡程序,所述负载均衡程序可被至少一个处理器执行,以使所述至少一个处理器执行如下步骤:

侦测通信连接的各个业务服务器的工作状态;

根据所述各业务服务器的工作状态判断各业务服务器是否发生异常,若判断某个业务服务器发生异常,则根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出发生异常的业务服务器连接的所有智能硬件设备;

将确定出的各个智能硬件设备按照预先确定的分配规则分配给正常工作的业务服务器,并建立确定出的每个智能硬件设备与分配的业务服务器的通信连接,更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

本发明还提出一种基于智能硬件设备的负载均衡系统,包括至少一个调度服务器及与所述调度服务器通信连接的多个业务服务器,所述调度服务器和所述业务服务器通信连接多个智能硬件设备,其中:

所述业务服务器,用于为通信连接的智能硬件设备提供数据交互服务,定时或者实时向通信连接的调度服务器发送连接状态数据包,以向该调度服务器确认连接状态;

所述调度服务器,用于:

侦测通信连接的各个业务服务器的工作状态;

根据所述各业务服务器的工作状态判断各业务服务器是否发生异常,若判断某个业务服务器发生异常,则根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出发生异常的业务服务器连接的所有智能硬件设备;

将确定出的各个智能硬件设备按照预先确定的分配规则分配给正常工作的业务服务器,并建立确定出的每个智能硬件设备与分配的业务服务器的通信连接。

优选地,所述调度服务器还用于:当判断一个业务服务器发生异常时,向预先确定的终端设备发送预设格式的提醒信息。

优选地,所述侦测通信连接的各个业务服务器的工作状态包括:

实时或者定时接收通信连接的业务服务器发送的连接状态数据包;

所述根据所述各业务服务器的工作状态判断各业务服务器是否发生异常包括:

若在预设时间内未收到通信连接的某个业务服务器发送的所述连接状态数据包,则判断该业务服务器发生异常。

优选地,所述侦测通信连接的各个业务服务器的工作状态包括:

定时或者实时向通信连接的业务服务器发送连接状态测试包,并从通信连接的业务服务器接收与该连接状态测试包对应的响应信息;

所述根据所述各业务服务器的工作状态判断各业务服务器是否发生异常包括:

若在预设时间内未收到通信连接的某个业务服务器发送的所述响应信息,则判断该业务服务器发生异常。

优选地,所述调度服务器还用于:在建立确定出的每个智能硬件设备与其分配到的业务服务器的通信连接之后,更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

优选地,所述预先确定的分配规则包括:

将确定出的各个智能硬件设备随机分配给正常工作的业务服务器;或者,

从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第一业务服务器,将确定出的各个智能硬件设备随机分配给各个第一业务服务器;或者,

从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第二业务服务器,若确定出的各个智能硬件设备的数量小于或者等于所述第二业务服务器的数量,则将确定出的各个智能硬件设备一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备的数量大于第二业务服务器的数量,则将各个第二业务服务器按照其当前预设类型负载指标参数值大小从小到大排序,并按照该排序顺序将确定出的各个智能硬件设备分配给各个第二业务服务器。

优选地,所述按照该排序顺序将确定出的各个智能硬件设备分配给各个第二业务服务器的步骤包括:

a1、从确定出的各个智能硬件设备中,随机指定与所述第二业务服务器的数量相等的数量的智能硬件设备,将当前指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a2、若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量小于确定出的业务服务器的数量,则将剩余未分配的各个智能硬件设备按照第二业务服务器的排序顺序一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量大于或者等于所述第二业务服务器的数量,则从剩余未分配的智能硬件设备中,随机指定与第二业务服务器的数量相等的数量的智能硬件设备,并将指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a3、重复执行上述步骤a2,直到所有确定出的智能硬件设备均分配完毕。

优选地,所述调度服务器还用于:

接收从通信连接的各个智能硬件设备发送的连接状态数据包,若在预设时间内未收到某个通信连接的智能硬件设备发送的所述连接状态数据包,则判断该智能硬件设备发生异常,根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定发生异常的智能硬件设备连接的第三业务服务器;

分析所述第三业务服务器的当前预设类型负载指标参数值是否小于第二预设阈值;

若所述第三业务服务器的当前预设类型负载指标参数值小于第二预设阈值,则从正常工作的业务服务器中,筛选出当前预设类型负载指标参数值最大的第四业务服务器;

若所述第四业务服务器的当前预设类型负载指标参数值大于所述第三业务服务器的当前预设类型负载指标参数值,且所述第四业务服务器的当前预设类型负载指标参数值与所述第三业务服务器的当前预设类型负载指标参数值的差值大于第三预设阈值,则从与所述第四业务服务器通信连接的智能硬件设备中随机指定一个智能硬件设备,并将所述指定的智能硬件设备分配给所述第三业务服务器并建立所述指定的智能硬件设备与所述第三业务服务器的通信连接,更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

本发明的技术方案,业务服务器定时或实时的向其通信连接的调度服务器发送连接状态数据包,调度服务器按照预设时间内未接收到某个业务服务器发送的连接状态数据包的判断条件,来判断出各个发生异常的业务服务器,再确定出各个发生异常的业务服务器连接的所有智能硬件设备,按照预先确定的分配规则,将这些确定出的智能硬件设备分别分配给正常工作的业务服务器并建立通信连接,以供正常工作的业务服务器为确定出的这些智能硬件设备提供数据交互服务,避免出现发生异常的业务服务器所连接的智能硬件设备出现不能正常进行数据交互的情况,保障了智能硬件设备的正常使用。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本发明负载均衡系统一实施例的系统架构示意图;

图2为本发明负载均衡方法一实施例的流程示意图;

图3为本发明负载均衡方法二实施例的流程示意图;

图4为本发明负载均衡程序一实施例的运行环境示意图;

图5为本发明负载均衡程序一实施例的程序模块图;

图6为本发明负载均衡程序二实施例的程序模块图;

图7为本发明负载均衡程序三实施例的程序模块图。

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

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

本发明提出一种基于智能硬件设备的负载均衡系统。

如图1所示,图1为本发明负载均衡系统100一实施例的系统架构示意图。

本实施例的负载均衡系统100,包括至少一个调度服务器1(本实施例图1中以1个为例),及与所述调度服务器1通信连接的多个业务服务器2,所述调度服务器1和所述业务服务器2通信连接多个智能硬件设备3(本实施例图1中以3个智能硬件设备3为例)。

所述业务服务器2为通信连接的智能硬件设备3提供数据交互服务,定时或者实时向通信连接的调度服务器1发送连接状态数据包,以向该调度服务器1确认连接状态;

所述调度服务器1执行以下操作:

侦测通信连接的各个业务服务器2的工作状态;

根据所述各业务服务器2的工作状态判断各业务服务器2是否发生异常,若判断某个业务服务器2发生异常,则根据预先存储的智能硬件设备3与业务服务器2的连接映射关系数据,确定出发生异常的业务服务器2连接的所有智能硬件设备3;

将确定出的各个智能硬件设备3按照预先确定的分配规则分配给正常工作的业务服务器2,并建立确定出的每个智能硬件设备与其分配到的业务服务器的通信连接(供正常工作的业务服务器2为分配的各个智能硬件设备3提供数据交互服务),更新预先存储的智能硬件设备3与业务服务器2的连接映射关系数据。

本实施例的负载均衡系统100中,所述智能硬件设备3与通信连接的业务服务器2进行的数据交互包括数据删除、数据读取、数据上传、数据下载、数据新增等。

本实施例中,调度服务器1侦测通信连接的各个业务服务器2的工作状态可以为包括:实时或者定时接收通信连接的业务服务器2发送的连接状态数据包;调度服务器1根据所述各业务服务器2的工作状态判断各业务服务器2是否发生异常可以为包括:若在预设时间内未收到通信连接的某个业务服务器2发送的所述连接状态数据包,则判断该业务服务器2发生异常。

每个业务服务器2均实时或定时向其通信连接调度服务器1发送连接状态数据包(例如,心跳包)。每个调度服务器1接收其通信连接的各个业务服务器2发送的连接状态数据包,以确定其连接的各个业务服务器2的工作状态。如果某个业务服务器2宕机或出现严重异常情况,则该业务服务器2无法正常向通信连接的调度服务器1发送所述连接状态数据包。业务服务器2可能偶尔也会由于发送处理不稳定或出现延迟问题,而出现发送连接状态数据包延迟的情况,但通常延迟的情况不会超过预设时间(例如,30秒)。

调度服务器1如果在预设时间内一直没收到其通信连接的某个业务服务器2发送的所述连接状态数据包,即该业务服务器2已经超过预设时间没有发送连接状态数据包,则调度服务器1排除了是业务服务器2发送处理不稳定或出现延迟问题的情况,判断该业务服务器2发生异常(例如,宕机)、该业务服务器2不能为其通信连接的智能硬件设备3提供正常的数据交互服务。这种情况下,调度服务器1根据预先存储的智能硬件设备3与业务服务器2的连接映射关系数据,确定出该发生异常的业务服务器2连接的所有智能硬件设备3。本实施例中,所述预先存储的智能硬件设备3与业务服务器2的连接映射关系数据,可由对应的智能硬件设备3或者业务服务器2在通信连接成功后上报给对应的调度服务器1进行预先存储。

调度服务器1中预先确定了一种分配规则,用来针对智能硬件设备3的重新分配业务服务器2。在调度服务器1确定出发生异常的业务服务器2连接的所有智能硬件设备3后,调度服务器1将这些智能硬件设备3按照预先确定的分配规则分配给出正常工作的业务服务器2,并且将各个智能硬件设备3分别与其新分配的正常工作的业务服务器2建立通信连接,以使正常工作的业务服务器2为重新分配的各个智能硬件设备3提供数据交互服务。由于部分智能硬件设备3重新分配了业务服务器2,因此,调度服务器1中预先存储的智能硬件设备3与业务服务器2的连接映射关系数据中,部分映射关系发生了改变,故调度服务器1在给确定出的智能硬件设备3重新分配完业务服务器2并建立通信连接后,对该预先存储的智能硬件设备3与业务服务器2的连接映射关系数据进行更新;例如,可以为调度服务器1根据正常工作的业务服务器2或确定出的各个智能硬件设备3在通信连接成功后上报相应的连接映射关系,来对预先存储的连接映射关系数据进行更新修改。

本实施例负载均衡系统100,通过业务服务器2定时或实时的向其通信连接的调度服务器1发送连接状态数据包,调度服务器1按照预设时间内未接收到某个业务服务器2发送的连接状态数据包的判断条件,来判断出各个发生异常的业务服务器2,再确定出各个发生异常的业务服务器2连接的所有智能硬件设备3,按照预先确定的分配规则,将这些确定出的智能硬件设备3分别分配给正常工作的业务服务器2并建立通信连接,以供正常工作的业务服务器2为确定出的这些智能硬件设备3提供数据交互服务,避免出现发生异常的业务服务器2所连接的智能硬件设备3出现不能正常进行数据交互的情况,保障了智能硬件设备3的正常使用。

进一步地,在本实施例中,当判断一个业务服务器2发生异常时,所述调度服务器1向预先确定的终端设备发送预设格式的提醒信息。

虽然调度服务器1在判断出一个业务服务器2发生异常后,会将该业务服务器2连接的所有智能硬件设备3分配给正常工作的业务服务器2并建立通信连接,让正常工作的业务服务器2为该发生异常的业务服务器2连接的智能硬件设备3提供数据交互服务,以保证了该发生异常的业务服务器2连接的智能硬件设备3的数据交互服务正常。但该发生异常的业务服务器2仍然需要有工作人员去及时的维修处理,否则,发生异常的业务服务器2过多,会造成正常工作的业务服务器2的负载压力过大,进而导致更多的业务服务器2出现发生异常。因此,本实施例中,在判断出一个业务服务器2发生异常后,调度服务器1向预先确定的终端设备(例如,手机或计算机)发送预设格式的提醒信息,以提醒工作人员及时对发生异常的业务服务器2进行维修处理。例如,该预设格式的提醒信息可以为“标识为****的业务服务器2发生异常,请尽快排查原因”。

进一步地,在本实施例的负载均衡系统100中,调度服务器1侦测通信连接的各个业务服务器2的工作状态还可为包括:定时或者实时向通信连接的业务服务器2发送连接状态测试包,并从通信连接的业务服务器2接收与该连接状态测试包对应的响应信息;调度服务器1根据所述各业务服务器2的工作状态判断各业务服务器2是否发生异常还可为包括:若在预设时间内未收到通信连接的某个业务服务器2发送的所述响应信息,则判断该业务服务器2发生异常。

本实施例通过调度服务器1定时或实时向其通信连接的各个业务服务器2发送连接状态测试包。业务服务器2在接收到调度服务器1发送的连接状态测试包后,会反馈与该连接状态测试包对应的响应信息给调度服务器1。调度服务器1根据接收到的业务服务器2反馈的响应信息来确定其通信连接的各个业务服务器2的工作状态。如果某个业务服务器2宕机或出现严重异常情况,则该业务服务器2不会向通信连接的调度服务器1反馈响应消息。

业务服务器2可能偶尔也会出现反馈响应消息延迟的情况,但通常延迟的情况不会超过预设时间(例如,30秒)。如果调度服务器1在预设时间内一直没收到其通信连接的某个业务服务器2反馈的响应消息,调度服务器1则判断该业务服务器2发生异常(例如,宕机),该业务服务器2不能为其通信连接的智能硬件设备3提供正常的数据交互服务。此时,调度服务器1根据预先存储的智能硬件设备3与业务服务器2的连接映射关系数据,确定出该发生异常的业务服务器2连接的所有智能硬件设备3。在调度服务器1确定出发生异常的业务服务器2连接的所有智能硬件设备3后,调度服务器1将这些智能硬件设备3按照预先确定的分配规则分配给出正常工作的业务服务器2,并且将各个智能硬件设备3分别与其新分配的正常工作的业务服务器2建立通信连接,以使正常工作的业务服务器2为重新分配的各个智能硬件设备3提供数据交互服务。由于部分智能硬件设备3重新分配了业务服务器2,因此,调度服务器1中预先存储的智能硬件设备3与业务服务器2的连接映射关系数据中,部分映射关系发生了改变,故调度服务器1在给确定出的智能硬件设备3重新分配完业务服务器2并建立通信连接后,对该预先存储的智能硬件设备3与业务服务器2的连接映射关系数据进行更新。

进一步地,本实施例通过调度服务器1主动定时或实时发送连接状态测试包给其通信连接的各个业务服务器2,根据是否能接收其通信连接的业务服务器2根据该连接状态测试包反馈的响应消息来判断业务服务器2的工作状态。调度服务器1可以综合接收到业务服务器2发送的连接状态数据包情况和接收到业务服务器2反馈的响应消息情况,对业务服务器2是否发生异常进行判断。例如,在预设时间内未接收到某个业务服务器2发送的连接状态数据包,但在预设时间内正常接收到该业务服务器2反馈的响应消息,则可能是由于业务服务器2的定时或实时发送连接状态数据包的部分受到干扰或偶然情形,这种情形不会影响该业务服务器2为其通信连接的智能硬件设备3提供数据交互服务,则调度服务器1判断该业务服务器2工作正常。如此可避免对业务服务器2的发生异常的误判。

另外,需要说明的是,本实施例负载均衡系统100的调度服务器1的上述作用可以与本发明负载均衡系统100一实施例中所述的调度服务器1的作用并存。

优选地,本实施例负载均衡系统100中的所述预先确定的分配规则包括:

(1)将确定出的各个智能硬件设备3随机分配给正常工作的业务服务器2;

或者,(2)从正常工作的业务服务器中筛选出当前预设类型负载指标参数值(例如,处理器的占用率、带宽占用率等)小于第一预设阈值的第一业务服务器2,将确定出的各个智能硬件设备3随机分配给各个第一业务服务器2;

或者,(3)从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第二业务服务器2,若确定出的各个智能硬件设备3的数量小于或者等于第二业务服务器2的数量,则将确定出的各个智能硬件设备3一对一的分配给各个第二业务服务器2,或者,若确定出的各个智能硬件设备3的数量大于第二业务服务器2的数量,则将各个第二业务服务器2按照对应的预设类型负载指标参数值从小到大的顺序排序,并按照该排序顺序将确定出的各个智能硬件设备3分配给各个第二业务服务器2。

进一步地,本实施例的预先确定的分配规则中的所述按照该排序顺序将确定出的各个智能硬件设备3分配给各个第二业务服务器2的步骤包括:

a1、从确定出的各个智能硬件设备3中,随机指定与所述第二业务服务器2的数量相等的数量的智能硬件设备3,将当前指定的各个智能硬件设备3一对一的分配给各个第二业务服务器2;

a2、若确定出的各个智能硬件设备3中剩余未分配的智能硬件设备3的数量小于确定出的业务服务器2的数量,则将剩余未分配的各个智能硬件设备3按照第二业务服务器2的排序顺序一对一的分配给各个第二业务服务器2,或者,若确定出的各个智能硬件设备3中剩余未分配的智能硬件设备3的数量大于或者等于所述第二业务服务器2的数量,则从剩余未分配的智能硬件设备3中,随机指定与第二业务服务器2的数量相等的数量的智能硬件设备3,并将指定的各个智能硬件设备3一对一的分配给各个第二业务服务器2;

a3、重复执行上述步骤a2,直到所有确定出的智能硬件设备3均分配完毕。

例如,确定出的智能硬件设备3的数量为50,从正常工作的业务服务器2中筛选出当前预设类型负载指标参数值小于第一预设阈值的第二业务服务器2的数量为15,那么对这50个智能硬件设备3的分配步骤为:

先从这50个智能硬件设备3随机指定15个智能硬件设备3,将这次指定的15个智能硬件设备3一对一的随机分配给这15个第二业务服务器2;

然后,再次从剩余未分配的35个智能硬件设备3中随机指定15智能硬件设备3,再将这次指定的15个智能硬件设备3一对一的随机分配给这15个第二业务服务器2;

接着,再次从剩余未分配的20个智能硬件设备3中随机指定15智能硬件设备3,再将这次指定的15个智能硬件设备3一对一的随机分配给这15个第二业务服务器2;

最后,将剩余未分配的5个智能硬件设备3,按照各个第二业务服务器的排序顺序(预设类型负载指标参数值从小到大的顺序排序)一对一的分配给各个第二业务服务器2,即最后一次分配具体是:先给排序第一的第二业务服务器2分配一个智能硬件设备3,然后是给排序第二的第二业务服务器2分配一个智能硬件设备3,以此类推,直至给排序第五的第二业务服务器分配2一个智能硬件设备3,就完成所有智能硬件设备3的分配。

进一步地,本实施例的负载均衡系统100中,所述智能硬件设备3还定时或者实时向通信连接的调度服务器1发送连接状态数据包,以向该调度服务器1确认连接状态;

所述调度服务器1还执行以下操作:

接收从通信连接的各个智能硬件设备3发送的连接状态数据包,若在预设时间内未收到某个通信连接的智能硬件设备3发送的所述连接状态数据包,则判断该智能硬件设备3发生异常,根据预先存储的智能硬件设备3与业务服务器2的连接映射关系数据,确定发生异常的智能硬件设备3连接的第三业务服务器2;

分析第三业务服务器2的当前预设类型负载指标参数值是否小于第二预设阈值;

若第三业务服务器2的当前预设类型负载指标参数值小于第二预设阈值,则从正常工作的业务服务器2中,筛选出当前的预设类型负载指标参数值最大的第四业务服务器2;

若第四业务服务器2的当前的预设类型负载指标参数值大于第三业务服务器2的当前预设类型负载指标参数值,且第四业务服务器2的当前的预设类型负载指标参数值与第三业务服务器2的当前预设类型负载指标参数值的差值大于第三预设阈值,则从与第四业务服务器2通信连接的智能硬件设备3中随机指定一个智能硬件设备3,并将指定的智能硬件设备3分配给所述第三业务服务器2并建立该指定的智能硬件设备与所述第三业务服务器的通信连接,更新预先存储的智能硬件设备3与业务服务器2的连接映射关系数据。

本实施例的负载均衡系统100中,每个智能硬件设备3均定时或实时向其连接的调度服务器1发送连接状态数据包(例如,心跳包)。调度服务器1接收其通信连接的各个智能硬件设备3发送的连接状态数据包,以确定其连接的各个智能硬件设备3的工作状态。如果某个智能硬件设备3发生异常,则该智能硬件设备3无法正常向其通信连接的调度服务器1发送所述连接状态数据包。如果在预设时间内,调度服务器1没有收到某个通信连接的智能硬件设备3的连接状态数据包,则判断该智能硬件设备3发生异常。则调度服务器1根据预先存储的智能硬件设备3与业务服务器2的连接映射关系数据,确定该发生异常的智能硬件设备3连接的第三业务服务器2。由于该第三业务服务器2连接的一个智能硬件设备3发生异常,因此该第三业务服务器2减少了一个需要提供数据交互服务的智能硬件设备3,负载压力降低,调度服务器1进一步确定是否可以对负载压力比该第三业务服务器2大的业务服务器2进行相应的负载均衡调度处理。

其中,预设类型负载指标参数值可以为处理器的占用率、带宽占用率等可以反映业务服务器2负载压力的指标参数的值。第二预设阈值为调度服务器1设定的用来衡量业务服务器2的当前预设类型负载指标参数值高低的一个阈值,例如用来衡量业务服务器2的负载是否接近稳定工作情况下的饱和负载状态。

调度服务器1通过分析该第三业务服务器2的当前预设类型负载指标参数值与第二预设阈值的大小,以确定该第三业务服务器2是否可以再新接智能硬件设备3,以为新增智能硬件设备3提供数据交互服务。调度服务器1在分析得到该第三业务服务器2的当前预设类型负载指标参数值小于第二预设阈值后,确定该第三业务服务器2的负载压力相对较小、还有为更多的智能硬件设备3提供数据交互服务的能力。则调度服务器1从除该第三业务服务器2以外的所有业务服务器2中,筛选出当前预设类型负载指标参数值最大的第四业务服务器2,也就是从业务服务器2中找到当前负载压力最大的一个业务服务器2。例如,业务服务器x1对应的当前预设类型负载指标参数值为y1;业务服务器x2对应的当前预设类型负载指标参数值为y2;业务服务器x3对应的当前预设类型负载指标参数值为y3,y3大于y2,且y3大于y1,则业务服务器x3即为判断出的业务服务器2。另外,调度服务器1若是分析得到第三业务服务器2的当前预设类型负载指标参数值大于或等于第二预设阈值,则说明该第三业务服务器2的当前负载压力相对较大、没有足够多处理能力来为更多的智能硬件设备3提供数据交互服务,则调度服务器1可不做任何处理,或者,调度服务器1对该第三业务服务器2进一步执行负载压力分析,确定是否要转移该第三业务服务器2连接的部分智能硬件设备3给其他业务服务器2。

调度服务器1在从正常工作的业务服务器2中筛选出当前预设类型负载指标参数值最大的第四业务服务器2后,将第四业务服务器2的当前预设类型负载指标参数值与上述第三业务服务器2的当前预设类型数据进行比较,如果比较得出第四业务服务器2的当前预设类型负载指标参数值比第三业务服务器2的当前预设类型负载指标参数值更大,且两者的差值超过第三预设阈值,调度服务器1则确定该第四业务服务器2与第三业务服务器2之间的当前负载压力差达到进行均衡调节的条件,那么调度服务器1则从该第四业务服务器2通信连接的智能硬件设备3中随机指定一个,将该指定的智能硬件设备3分配给第三业务服务器2并建立指定的智能硬件设备与所述第三业务服务器的通信连接,让第三业务服务器2为该指定的智能硬件设备3提供数据交互服务。当然,在将该指定的智能硬件设备3分配给第三业务服务器2后,该指定的智能硬件设备3的连接映射关系发生了改变,故调度服务器1再对该预先存储的智能硬件设备3与业务服务器2的连接映射关系数据进行更新。另外,如果第四业务服务器2的当前的预设类型负载指标参数值不大于第三业务服务器2的当前预设类型负载指标参数值,或者第四业务服务器2的当前预设类型负载指标参数值与第三业务服务器2的当前预设类型负载指标参数值的差值不大于第三预设阈值,则调度服务器1可以不作任何处理,或者调度服务器1对该第二的业务服务器2进行均衡调度处理(例如,将该第四业务服务器2连接的一个或多个智能硬件设备3分配给当前负载压力最小的业务服务器2),等等。

本实施例负载均衡系统100,通过让该第三业务服务器2对第四业务服务器2的负载压力的分担,减小了第四业务服务器2的负载压力,使得各个业务服务器2的负载压力更加均衡,改善了个别业务服务器2由于负载压力过大而造成业务服务器2故障的情况发生,保障了业务服务器2对智能硬件设备3的服务稳定性。

本发明提出一种负载均衡方法,该负载均衡方法适用于上述负载均衡系统的调度服务器中。

如图2所示,图2为本发明负载均衡方法一实施例的流程示意图。

本实施例中,该负载均衡方法包括步骤:

步骤s10,调度服务器侦测通信连接的各个业务服务器的工作状态。

其中,侦测通信连接的各个业务服务器的工作状态的步骤可包括:实时或者定时接收通信连接的业务服务器发送的连接状态数据包。即每个业务服务器均实时或定时向其通信连接调度服务器发送连接状态数据包(例如,心跳包)。每个调度服务器接收其通信连接的各个业务服务器发送的连接状态数据包,以确定其连接的各个业务服务器的工作状态。如果某个业务服务器宕机或出现严重异常情况,则该业务服务器无法正常向通信连接的调度服务器发送所述连接状态数据包。

步骤s20,调度服务器根据所述各业务服务器的工作状态判断各业务服务器是否发生异常,若判断某个业务服务器发生异常,则根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出发生异常的业务服务器连接的所有智能硬件设备。

调度服务器根据所述各业务服务器的工作状态判断各业务服务器是否发生异常的步骤可包括:若在预设时间内未收到通信连接的某个业务服务器发送的所述连接状态数据包,则判断该业务服务器发生异常。业务服务器可能偶尔也会由于发送处理不稳定或出现延迟问题,而出现发送连接状态数据包延迟的情况,但通常延迟的情况不会超过预设时间(例如,30秒)。如果调度服务器在预设时间内一直没收到其通信连接的某个业务服务器发送的所述连接状态数据包,即该业务服务器已经超过预设时间没有发送连接状态数据包,则调度服务器判断该业务服务器发生异常(例如,宕机),该业务服务器不能为其通信连接的智能硬件设备提供正常的数据交互服务(例如,数据删除、数据读取、数据上传、数据下载、数据新增等)。调度服务器。根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出该发生异常的业务服务器连接的所有智能硬件设备。本实施例中,所述预先存储的智能硬件设备与业务服务器的连接映射关系数据,可由对应的智能硬件设备或者业务服务器在通信连接成功后上报给对应的调度服务器进行预先存储。

步骤s30,调度服务器将确定出的各个智能硬件设备按照预先确定的分配规则分配给正常工作的业务服务器,并建立确定出的每个智能硬件设备与其分配到的业务服务器的通信连接。

调度服务器中预先确定了一种分配规则,用来针对智能硬件设备的重新分配业务服务器。在调度服务器确定出发生异常的业务服务器连接的所有智能硬件设备后,调度服务器将这些智能硬件设备按照预先确定的分配规则分配给出正常工作的业务服务器,并且将各个智能硬件设备分别与其新分配的正常工作的业务服务器建立通信连接,以使正常工作的业务服务器为重新分配的各个智能硬件设备提供数据交互服务。

进一步地,该负载均衡方法在步骤s30之后,还包括步骤:更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

由于部分智能硬件设备重新分配了业务服务器,因此,调度服务器中预先存储的智能硬件设备与业务服务器的连接映射关系数据中,部分映射关系发生了改变,故调度服务器在给确定出的智能硬件设备重新分配完业务服务器并建立通信连接后,对该预先存储的智能硬件设备与业务服务器的连接映射关系数据进行更新。例如,调度服务器根据正常工作的业务服务器或确定出的各个智能硬件设备在通信连接成功后上报的连接映射关系,来对预先存储的连接映射关系数据进行更新或修改。

本实施例的技术方案,业务服务器定时或实时的向其通信连接的调度服务器发送连接状态数据包,调度服务器按照预设时间内未接收到某个业务服务器发送的连接状态数据包的判断条件,来判断出各个发生异常的业务服务器,再确定出各个发生异常的业务服务器连接的所有智能硬件设备,按照预先确定的分配规则,将这些确定出的智能硬件设备分别分配给正常工作的业务服务器并建立通信连接,以供正常工作的业务服务器为确定出的这些智能硬件设备提供数据交互服务,避免出现发生异常的业务服务器所连接的智能硬件设备出现不能正常进行数据交互的情况,保障了智能硬件设备的正常使用。

进一步地,本实施例中,调度服务器侦测通信连接的各个业务服务器的工作状态的步骤还可包括:调度服务器定时或者实时向通信连接的业务服务器发送连接状态测试包,并从通信连接的业务服务器接收与该连接状态测试包对应的响应信息。

本实施例中,调度服务器定时或实时向其通信连接的各个业务服务器发送连接状态测试包,业务服务器在接收到调度服务器发送的连接状态测试包会反馈与该连接状态测试包对应的响应信息给调度服务器。调度服务器根据接收到的业务服务器反馈的响应信息来确定其通信连接的各个业务服务器的工作状态。如果某个业务服务器宕机或出现严重异常情况,则该业务服务器不会向通信连接的调度服务器反馈响应消息。

调度服务器根据所述各业务服务器的工作状态判断各业务服务器是否发生异常的步骤还可包括:调度服务器若在预设时间内未收到通信连接的某个业务服务器发送的所述响应信息,则判断该业务服务器发生异常。

业务服务器可能偶尔也会出现反馈响应消息延迟的情况,但通常延迟的情况不会超过预设时间(例如,30秒)。如果调度服务器在预设时间内一直没收到其通信连接的某个业务服务器反馈的响应消息,则调度服务器判断该业务服务器发生异常(例如,宕机)。

本实施例方案通过调度服务器主动定时或实时发送连接状态测试包给其通信连接的各个业务服务器,以根据是否能接收其通信连接的业务服务器根据该连接状态测试包反馈的响应消息来判断业务服务器的工作状态。调度服务器可以综合接收到业务服务器发送的连接状态数据包情况和接收到业务服务器反馈的响应消息情况,对业务服务器是否发生异常进行判断,例如,在预设时间内未接收到某个业务服务器发送的连接状态数据包,但在预设时间内正常接收到该业务服务器反馈的响应消息,则可能是由于业务服务器的定时或实时发送连接状态数据包的部分受到干扰或偶然情形,这种情形不影响该业务服务器为其通信连接的智能硬件设备提供数据交互服务,则调度服务器可将此种情况判断为该业务服务器工作正常。如此,可避免对业务服务器的发生异常的误判。

需要说明的是,本实施例中,调度服务器侦测通信连接的各个业务服务器的工作状态,并根据所述各业务服务器的工作状态判断各业务服务器是否发生异常,可为以下(1)方案或(2)方案,或者为(1)(2)方案结合:

(1)方案:调度服务器实时或者定时接收通信连接的业务服务器发送的连接状态数据包;若在预设时间内未收到通信连接的某个业务服务器发送的所述连接状态数据包,则判断该业务服务器发生异常。

(2)方案:调度服务器定时或者实时向通信连接的业务服务器发送连接状态测试包,并从通信连接的业务服务器接收与该连接状态测试包对应的响应信息;调度服务器若在预设时间内未收到通信连接的某个业务服务器发送的所述响应信息,则判断该业务服务器发生异常。

进一步地,本实施例的负载均衡方法还包括:

在判断一个业务服务器发生异常后,向预先确定的终端设备发送预设格式的提醒信息。

虽然调度服务器在判断出一个业务服务器发生异常后,会将该业务服务器连接的所有智能硬件设备分配给正常工作的业务服务器并建立通信连接,让正常工作的业务服务器为该发生异常的业务服务器连接的智能硬件设备提供数据交互服务,以保证了该发生异常的业务服务器连接的智能硬件设备的数据交互服务正常。但该发生异常的业务服务器仍然需要有工作人员去及时的维修处理,否则,发生异常的业务服务器过多,会造成正常工作的业务服务器的负载压力过大,进而导致更多的业务服务器出现发生异常。因此,本实施例中,在判断出一个业务服务器发生异常后,调度服务器向预先确定的终端设备(例如,手机或计算机)发送预设格式的提醒信息,以提醒工作人员及时对发生异常的业务服务器进行维修处理。例如,该预设格式的提醒信息可以为“标识为****的业务服务器发生异常,请尽快排查原因”。

优选地,本实施例的负载均衡方法中,所述预先确定的分配规则包括:

(1)将确定出的各个智能硬件设备随机分配给正常工作的业务服务器;

或者,(2)从正常工作的业务服务器中筛选出当前预设类型负载指标参数值(例如,处理器的占用率、带宽占用率等)小于第一预设阈值的第一业务服务器,将确定出的各个智能硬件设备随机分配给各个第一业务服务器;

或者,(3)从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第二业务服务器,若确定出的各个智能硬件设备的数量小于或者等于第二业务服务器的数量,则将确定出的各个智能硬件设备一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备的数量大于第二业务服务器的数量,则将各个第二业务服务器按照对应的预设类型负载指标参数值从小到大的顺序排序,并按照该排序顺序将确定出的各个智能硬件设备分配给各个第二业务服务器。

进一步地,本实施例负载均衡方法中,上述预先确定的分配规则中的所述按照该排序顺序将确定出的各个智能硬件设备分配给各个第二业务服务器的步骤包括:

a1、从确定出的各个智能硬件设备中,随机指定与所述第二业务服务器的数量相等的数量的智能硬件设备,将当前指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a2、若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量小于确定出的业务服务器的数量,则将剩余未分配的各个智能硬件设备按照第二业务服务器的排序顺序一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量大于或者等于所述第二业务服务器的数量,则从剩余未分配的智能硬件设备中,随机指定与第二业务服务器的数量相等的数量的智能硬件设备,并将指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a3、重复执行上述步骤a2,直到所有确定出的智能硬件设备均分配完毕。

例如,确定出的智能硬件设备的数量为50,从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第二业务服务器的数量为15,那么对这50个智能硬件设备的分配步骤包括:

先从这50个智能硬件设备随机指定15个智能硬件设备,将这次指定的15个智能硬件设备一对一的随机分配给这15个第二业务服务器;

然后,再次从剩余未分配的35个智能硬件设备中随机指定15智能硬件设备,再将这次指定的15个智能硬件设备一对一的随机分配给这15个第二业务服务器;

接着,再次从剩余未分配的20个智能硬件设备中随机指定15智能硬件设备,再将这次指定的15个智能硬件设备一对一的随机分配给这15个第二业务服务器;

最后,将剩余未分配的5个智能硬件设备,按照各个第二业务服务器的排序顺序(预设类型负载指标参数值从小到大的顺序排序)一对一的分配给各个第二业务服务器,即最后一次分配具体是:先给排序第一的第二业务服务器分配一个智能硬件设备,然后是给排序第二的第二业务服务器分配一个智能硬件设备,以此类推,直至给排序第五的第二业务服务器分配一个智能硬件设备,就完成所有智能硬件设备的分配。

如图3所示,图3为本发明负载均衡方法二实施例的流程示意图。

在本实施例中,该负载均衡方法还包括:

步骤s40,调度服务器接收从通信连接的各个智能硬件设备发送的连接状态数据包,若在预设时间内未收到某个通信连接的智能硬件设备发送的所述连接状态数据包,则判断该智能硬件设备发生异常,根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定发生异常的智能硬件设备连接的第三业务服务器。

每个智能硬件设备均定时或实时向其连接的调度服务器发送连接状态数据包(例如,心跳包),调度服务器接收其通信连接的各个智能硬件设备发送的连接状态数据包,以确定其连接的各个智能硬件设备的工作状态。如果某个智能硬件设备发生异常,则该智能硬件设备无法正常向其通信连接的调度服务器发送所述连接状态数据包。调度服务器如果在预设时间内没有收到某个通信连接的智能硬件设备的连接状态数据包,则判断该智能硬件设备发生异常,并根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定该发生异常的智能硬件设备连接的第三业务服务器。由于该第三业务服务器连接的一个智能硬件设备发生异常,因此该第三业务服务器减少了一个需要提供数据交互服务的智能硬件设备,负载压力降低,调度服务器则可进一步确定是否可以对负载压力比该第三业务服务器大的业务服务器进行相应的负载均衡调度处理。

步骤s50,调度服务器分析所述第三业务服务器的当前预设类型负载指标参数值(为使描述更加简洁,本实施例的下面所有描述中将当前预设类型负载指标参数值全部以f表示)是否小于第二预设阈值。

本实施例中,f可以为处理器的占用率、带宽占用率等可以反映业务服务器负载压力的指标参数的值。第二预设阈值为调度服务器设定的用来衡量业务服务器的f高低的一个阈值,例如用来衡量业务服务器的负载是否接近稳定工作情况下的饱和负载状态。调度服务器通过分析该第三业务服务器的f与第二预设阈值的大小,以确定该第三业务服务器是否可以再新接智能硬件设备,以为新增智能硬件设备提供数据交互服务。

步骤s60,调度服务器若所述第三业务服务器的f小于第二预设阈值,则从正常工作的业务服务器中,筛选出f最大的第四业务服务器。

调度服务器在分析得到该第三业务服务器的f小于第二预设阈值后,即确定该第三业务服务器的负载压力相对较小,还有为更多的智能硬件设备提供数据交互服务的能力。则从除该第三业务服务器以外的所有业务服务器中,筛选出f最大的第四业务服务器,也就是从业务服务器中找到当前负载压力最大的一个业务服务器;例如,业务服务器x1对应的f为y1;业务服务器x2对应的f为y2;业务服务器x3对应的f为y3,y3大于y2,且y3大于y1,则业务服务器x3即为判断出的业务服务器2。另外,调度服务器若是分析得到第三业务服务器的f大于或等于第二预设阈值,则说明该第三业务服务器的当前负载压力相对较大,没有足够多处理能力来为更多的智能硬件设备提供数据交互服务,则调度服务器可不做任何处理,或者,调度服务器对该第三业务服务器进一步负载压力分析,确定是否要转移该第三业务服务器连接的部分智能硬件设备给的业务服务器,或处理操作。

步骤s70,调度服务器若所述第四业务服务器的f大于所述第三业务服务器的f,且所述第四业务服务器的f与所述第三业务服务器的f的差值大于第三预设阈值,则从与所述第四业务服务器通信连接的智能硬件设备中随机指定一个智能硬件设备,并将所述指定的智能硬件设备分配给所述第三业务服务器并建立所述指定的智能硬件设备与所述第三业务服务器的通信连接,更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

调度服务器在从正常工作的业务服务器中筛选出f最大的第四业务服务器后,将第四业务服务器的f与上述第三业务服务器的当前预设类型数据进行比较,如果比较得出第四业务服务器的f比第三业务服务器的f更大,且两者的差值超过第三预设阈值,则调度服务器确定该第四业务服务器与第三业务服务器之间的当前负载压力差达到进行均衡调节的条件,那么调度服务器从该第四业务服务器通信连接的智能硬件设备中随机指定一个,将该指定的智能硬件设备分配给第三业务服务器并建立指定的智能硬件设备与所述第三业务服务器的通信连接,让第三业务服务器为该指定的智能硬件设备提供数据交互服务。当然,在将该指定的智能硬件设备分配给第三业务服务器后,该指定的智能硬件设备的连接映射关系发生了改变,故调度服务器再对该预先存储的智能硬件设备与业务服务器的连接映射关系数据进行更新。另外,如果第四业务服务器的当前的预设类型负载指标参数值不大于第三业务服务器的f,或者第四业务服务器的f与第三业务服务器的f的差值不大于第三预设阈值,则调度服务器可以不作任何处理,或者调度服务器对该第二的业务服务器进行均衡调度处理(例如,将该第四业务服务器连接的一个或多个智能硬件设备分配给当前负载压力最小的业务服务器),等等。

本实施例方案通过让该第三业务服务器分担第四业务服务器的负载压力,减小了第四业务服务器的负载压力,使得各个业务服务器的负载压力更加均衡,改善了个别业务服务器由于负载压力过大而造成业务服务器故障的情况发生,保障了业务服务器对智能硬件设备的服务稳定性。

此外,本发明还提出一种负载均衡程序。

请参阅图4,是本发明负载均衡程序10较佳实施例的运行环境示意图。

在本实施例中,负载均衡程序10安装并运行于调度服务器1中。调度服务器1可以是桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该调度服务器1可包括,但不仅限于,存储器11、处理器12及显示器13。图5仅示出了具有组件11-13的调度服务器1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

存储器11在一些实施例中可以是调度服务器1的内部存储单元,例如该调度服务器1的硬盘或内存。存储器11在另一些实施例中也可以是调度服务器1的外部存储设备,例如调度服务器1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括调度服务器1的内部存储单元也包括外部存储设备。存储器11用于存储安装于调度服务器1的应用软件及各类数据,例如负载均衡程序10的程序代码等。存储器11还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行负载均衡程序10等。

显示器13在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。显示器13用于显示在调度服务器1中处理的信息以及用于显示可视化的用户界面。调度服务器1的部件11-13通过系统总线相互通信。

请参阅图5,是本发明负载均衡程序10较佳实施例的程序模块图。在本实施例中,负载均衡程序10可以被分割成一个或多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行,以完成本发明。例如,在图6中,负载均衡程序10可以被分割成第一接收模块101、第一确定模块102及第一分配模块103。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述负载均衡程序10在调度服务器1中的执行过程,其中:

第一接收模块101,用于侦测通信连接的各个业务服务器的工作状态;

其中,侦测通信连接的各个业务服务器的工作状态可为:实时或者定时接收通信连接的业务服务器发送的连接状态数据包。即每个业务服务器均实时或定时向其通信连接调度服务器发送连接状态数据包(例如,心跳包),每个调度服务器接收其通信连接的各个业务服务器发送的连接状态数据包,以确定其连接的各个业务服务器的工作状态。如果某个业务服务器宕机或出现严重异常情况,则该业务服务器无法正常向通信连接的调度服务器发送所述连接状态数据包。

第一确定模块102,用于在根据所述各业务服务器的工作状态判断各业务服务器是否发生异常,若判断某个业务服务器发生异常,则根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出发生异常的业务服务器连接的所有智能硬件设备;

调度服务器根据所述各业务服务器的工作状态判断各业务服务器是否发生异常可为:若在预设时间内未收到通信连接的某个业务服务器发送的所述连接状态数据包,则判断该业务服务器发生异常。业务服务器可能偶尔也会由于发送处理不稳定或出现延迟问题,而出现发送连接状态数据包延迟的情况,但通常延迟的情况不会超过预设时间(例如,30秒);如果调度服务器在预设时间内一直没收到其通信连接的某个业务服务器发送的所述连接状态数据包,即该业务服务器已经超过预设时间没有发送连接状态数据包,此时则排除了是业务服务器发送处理不稳定或出现延迟问题的情况,调度服务器则判断该业务服务器发生异常(例如,宕机),该业务服务器不能为其通信连接的智能硬件设备提供正常的数据交互服务(例如,数据删除、数据读取、数据上传、数据下载、数据新增等);此时,调度服务器则根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出该发生异常的业务服务器连接的所有智能硬件设备。本实施例中,所述预先存储的智能硬件设备与业务服务器的连接映射关系数据,可由对应的智能硬件设备或者业务服务器在通信连接成功后上报给对应的调度服务器进行预先存储。

第一分配模块103,用于将确定出的各个智能硬件设备按照预先确定的分配规则分配给正常工作的业务服务器,并建立确定出的每个智能硬件设备与其分配到的业务服务器的通信连接。

调度服务器中预先确定了一种分配规则,用来针对智能硬件设备的重新分配业务服务器。在调度服务器确定出发生异常的业务服务器连接的所有智能硬件设备后,调度服务器将这些智能硬件设备按照预先确定的分配规则分配给出正常工作的业务服务器,并且将各个智能硬件设备分别与其新分配的正常工作的业务服务器建立通信连接,以使正常工作的业务服务器为重新分配的各个智能硬件设备提供数据交互服务。

第一分配模块103还用于在建立确定出的每个智能硬件设备与其分配到的业务服务器的通信连接之后,更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

由于部分智能硬件设备重新分配了业务服务器,因此,调度服务器中预先存储的智能硬件设备与业务服务器的连接映射关系数据中,部分映射关系发生了改变,故调度服务器在给确定出的智能硬件设备重新分配完业务服务器并建立通信连接后,对该预先存储的智能硬件设备与业务服务器的连接映射关系数据进行更新;例如,可以为调度服务器根据正常工作的业务服务器或确定出的各个智能硬件设备在通信连接成功后上报相应的连接映射关系,来对预先存储的连接映射关系数据进行更新修改。

本实施例技术方案,业务服务器定时或实时的向其通信连接的调度服务器发送连接状态数据包,调度服务器按照预设时间内未接收到某个业务服务器发送的连接状态数据包的判断条件,来判断出各个发生异常的业务服务器,再确定出各个发生异常的业务服务器连接的所有智能硬件设备,按照预先确定的分配规则,将这些确定出的智能硬件设备分别分配给正常工作的业务服务器并建立通信连接,以供正常工作的业务服务器为确定出的这些智能硬件设备提供数据交互服务,避免出现发生异常的业务服务器所连接的智能硬件设备出现不能正常进行数据交互的情况,保障了智能硬件设备的正常使用。

参照图6,本实施例的负载均衡程序还包括:

第二接收模块108,用于定时或者实时向通信连接的业务服务器发送连接状态测试包,并从通信连接的业务服务器接收与该连接状态测试包对应的响应信息;

本实施例中,调度服务器定时或实时向其通信连接的各个业务服务器发送连接状态测试包,业务服务器在接收到调度服务器发送的连接状态测试包会反馈与该连接状态测试包对应的响应信息给调度服务器,调度服务器根据接收到的业务服务器反馈的响应信息来确定其通信连接的各个业务服务器的工作状态。如果某个业务服务器宕机或出现严重异常情况,则该业务服务器不会向通信连接的调度服务器反馈响应消息。

第二确定模块109,用于在预设时间内未收到通信连接的某个业务服务器发送的所述响应信息时,判断该业务服务器发生异常,根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出发生异常的业务服务器连接的所有智能硬件设备;

业务服务器可能偶尔也会出现反馈响应消息延迟的情况,但通常延迟的情况不会超过预设时间(例如,30秒);如果调度服务器在预设时间内一直没收到其通信连接的某个业务服务器反馈的响应消息,调度服务器则判断该业务服务器发生异常(例如,宕机),该业务服务器不能为其通信连接的智能硬件设备提供正常的数据交互服务;此时,调度服务器则根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定出该发生异常的业务服务器连接的所有智能硬件设备。

第二分配模块110,用于将确定出的各个智能硬件设备按照预先确定的分配规则分配给正常工作的业务服务器,并建立确定出的每个智能硬件设备与其分配到的业务服务器的通信连接,更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

在调度服务器确定出发生异常的业务服务器连接的所有智能硬件设备后,调度服务器将这些智能硬件设备按照预先确定的分配规则分配给出正常工作的业务服务器,并且将各个智能硬件设备分别与其新分配的正常工作的业务服务器建立通信连接,以使正常工作的业务服务器为重新分配的各个智能硬件设备提供数据交互服务。由于部分智能硬件设备重新分配了业务服务器,因此,调度服务器中预先存储的智能硬件设备与业务服务器的连接映射关系数据中,部分映射关系发生了改变,故调度服务器在给确定出的智能硬件设备重新分配完业务服务器并建立通信连接后,对该预先存储的智能硬件设备与业务服务器的连接映射关系数据进行更新。

本实施例方案进一步通过调度服务器主动定时或实时发送连接状态测试包给其通信连接的各个业务服务器,以根据是否能接收其通信连接的业务服务器根据该连接状态测试包反馈的响应消息来判断业务服务器的工作状态;调度服务器可以综合接收到业务服务器发送的连接状态数据包情况和接收到业务服务器反馈的响应消息情况,对业务服务器是否发生异常进行判断,例如,在预设时间内未接收到某个业务服务器发送的连接状态数据包,但在预设时间内正常接收到该业务服务器反馈的响应消息,则可能是由于业务服务器的定时或实时发送连接状态数据包的部分受到干扰或偶然情形,这种情形不影响该业务服务器为其通信连接的智能硬件设备提供数据交互服务,则调度服务器可将此种情况判断为该业务服务器工作正常;如此,可避免对业务服务器的发生异常的误判。

另外,需要说明的是,本实施例的方案可以基于本发明负载均衡程序一实施例的方案,也可以不基于本发明负载均衡程序一实施例的方案,即采用本实施例的第二接收模块108、第二确定模块109、第二分配模块110直接替换本发明负载均衡程序一实施例的第一接收模块101、第一确定模块102、第一分配模块103。

进一步地,本实施例的负载均衡程序还包括:

提醒模块,用于在判断一个业务服务器发生异常后,向预先确定的终端设备发送预设格式的提醒信息。

虽然调度服务器在判断出一个业务服务器发生异常后,会将该业务服务器连接的所有智能硬件设备分配给正常工作的业务服务器并建立通信连接,让正常工作的业务服务器为该发生异常的业务服务器连接的智能硬件设备提供数据交互服务,以保证了该发生异常的业务服务器连接的智能硬件设备的数据交互服务正常。但该发生异常的业务服务器仍然需要有工作人员去及时的维修处理,否则,发生异常的业务服务器过多,会造成正常工作的业务服务器的负载压力过大,进而导致更多的业务服务器出现发生异常。因此,本实施例中,在判断出一个业务服务器发生异常后,调度服务器向预先确定的终端设备(例如,手机或计算机)发送预设格式的提醒信息,以提醒工作人员及时对发生异常的业务服务器进行维修处理。例如,该预设格式的提醒信息可以为“标识为****的业务服务器发生异常,请尽快排查原因”。

优选地,本实施例的负载均衡程序中,所述预先确定的分配规则包括:

(1)将确定出的各个智能硬件设备随机分配给正常工作的业务服务器;

或者,(2)从正常工作的业务服务器中筛选出当前预设类型负载指标参数值(例如,处理器的占用率、带宽占用率等)小于第一预设阈值的第一业务服务器,将确定出的各个智能硬件设备随机分配给各个第一业务服务器;

或者,(3)从正常工作的业务服务器中筛选出当前预设类型负载指标参数值小于第一预设阈值的第二业务服务器,若确定出的各个智能硬件设备的数量小于或者等于第二业务服务器的数量,则将确定出的各个智能硬件设备一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备的数量大于第二业务服务器的数量,则将各个第二业务服务器按照对应的预设类型负载指标参数值从小到大的顺序排序,并按照该排序顺序将确定出的各个智能硬件设备分配给各个第二业务服务器。

进一步地,本实施例负载均衡程序中,上述预先确定的分配规则中的所述按照该排序顺序将确定出的各个智能硬件设备分配给正常工作的业务服务器具体包括:

a1、从确定出的各个智能硬件设备中,随机指定与所述第二业务服务器的数量相等的数量的智能硬件设备,将当前指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a2、若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量小于确定出的业务服务器的数量,则将剩余未分配的各个智能硬件设备按照第二业务服务器的排序顺序一对一的分配给各个第二业务服务器,或者,若确定出的各个智能硬件设备中剩余未分配的智能硬件设备的数量大于或者等于所述第二业务服务器的数量,则从剩余未分配的智能硬件设备中,随机指定与第二业务服务器的数量相等的数量的智能硬件设备,并将指定的各个智能硬件设备一对一的分配给各个第二业务服务器;

a3、重复执行上述步骤a2,直到所有确定出的智能硬件设备均分配完毕。

参照图7,本实施例的负载均衡程序还包括:

状态确定模块104,用于接收从通信连接的各个智能硬件设备发送的连接状态数据包,若在预设时间内未收到某个通信连接的智能硬件设备发送的所述连接状态数据包,则判断该智能硬件设备发生异常,根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定发生异常的智能硬件设备连接的第三业务服务器;

每个智能硬件设备均定时或实时向其连接的调度服务器发送连接状态数据包(例如,心跳包),调度服务器接收其通信连接的各个智能硬件设备发送的连接状态数据包,以确定其连接的各个智能硬件设备的工作状态。如果某个智能硬件设备发生异常,则该智能硬件设备无法正常向其通信连接的调度服务器发送所述连接状态数据包;调度服务器如果在预设时间内没有收到某个通信连接的智能硬件设备的连接状态数据包,则判断该智能硬件设备发生异常;并根据预先存储的智能硬件设备与业务服务器的连接映射关系数据,确定该发生异常的智能硬件设备连接的第三业务服务器。由于该第三业务服务器连接的一个智能硬件设备发生异常,因此该第三业务服务器减少了一个需要提供数据交互服务的智能硬件设备,负载压力降低,调度服务器可进一步确定是否可以对负载压力比该第三业务服务器大的业务服务器进行相应的负载均衡调度处理。

比较模块105,用于分析所述第三业务服务器的当前预设类型负载指标参数值f(为使描述更加简洁,本实施例的下面所有描述中将当前预设类型负载指标参数值全部采用f表示)是否小于第二预设阈值;

本实施例中,f可以为处理器的占用率、带宽占用率等可以反映业务服务器负载压力的指标参数的值。第二预设阈值为调度服务器设定的用来衡量业务服务器的f高低的一个阈值,例如用来衡量业务服务器的负载是否接近稳定工作情况下的饱和负载状态。调度服务器通过分析该第三业务服务器的f与第二预设阈值的大小,以确定该第三业务服务器是否可以再新接智能硬件设备,以为新增智能硬件设备提供数据交互服务。

判断模块106,用于在确定所述第三业务服务器的f小于第二预设阈值后,从正常工作的业务服务器中,筛选出f最大的第四业务服务器;

调度服务器在分析得到该第三业务服务器的f小于第二预设阈值后,即确定该第三业务服务器的负载压力相对较小,还有为更多的智能硬件设备提供数据交互服务的能力。则从除该第三业务服务器以外的所有业务服务器中,筛选出f最大的第四业务服务器,也就是从业务服务器中找到当前负载压力最大的一个业务服务器;例如,业务服务器x1对应的f为y1;业务服务器x2对应的f为y2;业务服务器x3对应的f为y3,y3大于y2,且y3大于y1,则业务服务器x3即为判断出的业务服务器2。另外,调度服务器若是分析得到第三业务服务器的f大于或等于第二预设阈值,则说明该第三业务服务器的当前负载压力相对较大,没有足够多处理能力来为更多的智能硬件设备提供数据交互服务,则调度服务器可不做任何处理,或者,调度服务器对该第三业务服务器进一步负载压力分析,确定是否要转移该第三业务服务器连接的部分智能硬件设备给的业务服务器,或处理操作。

均衡调度模块107,用于在所述第四业务服务器的f大于所述第三业务服务器的f,且所述第四业务服务器的f与所述第三业务服务器的f的差值大于第三预设阈值时,从与所述第四业务服务器通信连接的智能硬件设备中随机指定一个智能硬件设备,并将所述指定的智能硬件设备分配给所述第三业务服务器并建立所述指定的智能硬件设备与所述第三业务服务器的通信连接,更新预先存储的智能硬件设备与业务服务器的连接映射关系数据。

调度服务器在从正常工作的业务服务器中筛选出f最大的第四业务服务器后,将第四业务服务器的f与上述第三业务服务器的当前预设类型数据进行比较,如果比较得出第四业务服务器的f比第三业务服务器的f更大,且两者的差值超过第三预设阈值,调度服务器则确定该第四业务服务器与第三业务服务器之间的当前负载压力差达到进行均衡调节的条件,那么调度服务器则从该第四业务服务器通信连接的智能硬件设备中随机指定一个,将该指定的智能硬件设备分配给第三业务服务器并建立指定的智能硬件设备与所述第三业务服务器的通信连接,让第三业务服务器为该指定的智能硬件设备提供数据交互服务。当然,在将该指定的智能硬件设备分配给第三业务服务器后,该指定的智能硬件设备的连接映射关系发生了改变,故调度服务器再对该预先存储的智能硬件设备与业务服务器的连接映射关系数据进行更新。另外,如果第四业务服务器的当前的预设类型负载指标参数值不大于第三业务服务器的f,或者第四业务服务器的f与第三业务服务器的f的差值不大于第三预设阈值,则调度服务器可以不作任何处理,或者调度服务器对该第二的业务服务器进行均衡调度处理(例如,将该第四业务服务器连接的一个或多个智能硬件设备分配给当前负载压力最小的业务服务器),等等。

本实施例方案通过让该第三业务服务器对第四业务服务器的负载压力的分担,减小了第四业务服务器的负载压力,使得各个业务服务器的负载压力更加均衡,改善了个别业务服务器由于负载压力过大而造成业务服务器故障的情况发生,保障了业务服务器对智能硬件设备的服务稳定性。

进一步地,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有负载均衡程序,所述负载均衡程序可被至少一个处理器执行,以使所述至少一个处理器执行上述任一实施例中的负载均衡方法。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

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