本发明涉及通信,尤其涉及一种离库的负荷分担处理方法和系统。
背景技术:
1、在一些对性能和可用性要求较高的场景中,大容量事务的持续运作往往会涉及多个服务节点,例如,在多媒体处理系统中,将媒体处理请求分发给不同的媒体处理单元,由这些单元分担处理媒体请求。而随着系统复杂度的提升,可靠性风险也在同步增加,有时为确保高度的稳定可靠,会考虑减少系统核心服务节点对其他节点的依赖性,避免或者降低非核心服务节点可能的异常对核心服务节点的影响。
2、在不同应用场景中,数据库可归为核心或非核心服务节点,而数据库异常对系统整体可靠性的影响是不可忽视的,即便有主备、集群这样的数据库高可用技术,也可能存在脑裂等严重的异常情况,从而导致系统整体不可用。具体而言,通常在负荷分担处理中,会通过数据库记录不同服务节点的负荷情况,在分发处理请求之前,会读取数据库中的这些负荷数据,再根据一定的算法确定将事务分发到哪个服务节点,之后再把各服务节点最新的负荷情况更新到数据库。此时,如果数据库发生异常而无法读写,将无法判断如何进行负荷分担处理,若使用默认的负荷分担规则处理,往往会导致负荷分担不均;而严重时,包括没有默认负荷分担处理规则或负荷分担不均导致服务节点过载,会造成系统整体不可用。
3、基于此,需要一种新的解决方案。
技术实现思路
1、本发明的主要目的在于提供一种离库的负荷分担处理方法和系统,以解决现有技术中大容量事务的持续运作,包括进行负荷分担处理时,可能受到数据库等非核心服务节点异常对核心服务节点的可用性造成影响的技术问题,实现在大容量事务的持续运作处理中,对系统核心服务节点高可用能力的保障,同时快速实现大容量事务持续运作时的负荷分担处理。
2、为实现上述目的,本发明提供一种离库的负荷分担处理方法,包括以下步骤:
3、根据存储有负荷分担节点的负荷量的字符串,统计所述负荷分担节点在预设时长内的负荷总量;以及
4、根据所述预设时长内的负荷总量,判断是否进行事务分配,其中,如果所述负荷总量未超过预设阈值,则对所述负荷分担节点分配事务。
5、在本发明提供的离库的负荷分担处理方法中,所述预设时长为60分钟,所述字符串中的每个字符表示所述负荷分担节点在每分钟内的负荷量,每个字符包括用于表征小时位的时间点位和表征负荷分担节点在对应分钟数的负荷量的负荷量点位。
6、在本发明提供的离库的负荷分担处理方法中,根据存储负荷分担节点的负荷量的字符串,统计所述负荷分担节点在预设时长内的负荷总量的步骤之前,还包括:
7、获取系统当前时间,使用分钟信息作为索引,识别所述字符串中对应的负荷量点位;以及
8、完成事务后,根据识别的负荷量更新字符串中对应的负荷量点位。
9、在本发明提供的离库的负荷分担处理方法中,在所述时间点位,通过单个字节标识24小时,超过10的小时数以英文字母代替。
10、此外,为实现上述目的,本发明还提供一种离库的负荷分担处理系统,包括统计模块,用于根据存储有负荷分担节点的负荷量的字符串,统计所述负荷分担节点在预设时长内的负荷总量;以及判断模块,用于根据所述预设时长内的负荷总量,判断是否进行事务分配,其中,如果所述负荷总量未超过预设阈值,则对所述负荷分担节点分配事务。
11、在本发明提供的离库的负荷分担处理系统中,所述预设时长为60分钟,所述字符串中的每个字符表示所述负荷分担节点在每分钟内的负荷量,每个字符包括用于表征小时位的时间点位和表征负荷分担节点在对应分钟数的负荷量的负荷量点位。
12、在本发明提供的离库的负荷分担处理系统中,还包括:
13、识别模块,用于获取系统当前时间,使用分钟信息作为索引,识别所述字符串中对应的负荷量点位;以及
14、更新模块,用于完成事务后,根据识别的负荷量更新字符串中对应的负荷量点位。
15、在本发明提供的离库的负荷分担处理系统中,在所述时间点位,通过单个字节标识24小时,超过10的小时数以英文字母代替。
16、此外,为实现上述目的,本发明还提供一种离库的负荷分担处理设备,包括:
17、存储器,用于存储计算机程序;
18、处理器,用于执行所述计算机程序时实现如上所述的离库的负荷分担处理方法的步骤。
19、此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的离库的负荷分担处理方法的步骤。
20、本发明中,在每个负荷分担节点,通过字符串统计该负荷分担节点在预设时长(通常为1小时)内的负荷总量;根据负荷总量,判断是否对其分配事务;由此,可以快速实现大容量事务持续运作时的负荷分担处理,同时,过程中不需要调用数据库进行存储或读取,也避免了对数据库这样的非核心服务节点的依赖以及其异常对系统核心服务节点的影响,保障了系统整体的高可用性。
1.一种离库的负荷分担处理方法,其特征在于,包括以下步骤:
2.如权利要求1所述的离库的负荷分担处理方法,其特征在于,所述预设时长为60分钟,所述字符串中的每个字符表示所述负荷分担节点在每分钟内的负荷量,每个字符包括用于表征小时位的时间点位和表征负荷分担节点在对应分钟数的负荷量的负荷量点位。
3.如权利要求2所述的离库的负荷分担处理方法,其特征在于,根据存储负荷分担节点的负荷量的字符串,统计所述负荷分担节点在预设时长内的负荷总量的步骤之前,还包括:
4.如权利要求2所述的离库的负荷分担处理方法,其特征在于,在所述时间点位,通过单个字节标识24小时,超过10的小时数以英文字母代替。
5.一种离库的负荷分担处理系统,其特征在于,包括:
6.如权利要求5所述的离库的负荷分担处理系统,其特征在于,所述预设时长为60分钟,所述字符串中的每个字符表示所述负荷分担节点在每分钟内的负荷量,每个字符包括用于表征小时位的时间点位和表征负荷分担节点在对应分钟数的负荷量的负荷量点位。
7.如权利要求6所述的离库的负荷分担处理系统,其特征在于,还包括:
8.如权利要求6所述的离库的负荷分担处理系统,其特征在于,在所述时间点位,通过单个字节标识24小时,超过10的小时数以英文字母代替。
9.一种离库的负荷分担处理设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的离库的负荷分担处理方法的步骤。