发明内容
本发明的主要目的在于提供一种基于用户访问量的负载均衡方法、系统及可读存储介质,旨在解决现有技术如何避免负载均衡过程中,对资源的过度消耗,以及影响访问速度的的技术问题。
为实现上述目的,本发明提供一种基于用户访问量的负载均衡方法,所述基于用户访问量的负载均衡方法包括:
接收用户终端发送的访问请求,并根据缓存的用户终端标识与服务器标识之间的对应关系,判断是否存在与所述访问请求对应的历史访问记录;
若存在所述历史访问记录,则从所述对应关系中查找与所述历史访问记录对应的历史服务器,并将所述访问请求转发到所述历史服务器;
若不存在所述历史访问记录,则根据各个服务器的用户访问量,确定目标服务器,并将所述访问请求转发到所述目标服务器。
可选地,所述根据各个服务器的用户访问量,确定目标服务器的步骤包括:
根据缓存的所述对应关系,确定各个服务器的用户访问量,并获取各个服务器的访问曲线和历史时段访问量;
对于每个所述服务器,均根据所述服务器的访问曲线和历史时段访问量,生成修正系数,并基于所述修正系数对所述服务器的用户访问量进行修正,以更新所述服务器的用户访问量;
在各个所述服务器的用户访问量均更新完成后,将更新的各所述用户访问量对比,确定更新的各所述用户访问量中的最小值,并将具有所述最小值的服务器确定为所述目标服务器。
可选地,所述根据缓存的用户终端标识与服务器标识之间的对应关系,判断是否存在与所述访问请求对应的历史访问记录的步骤包括:
读取所述访问请求携带的当前终端标识,并将所述对应关系中的各用户终端标识与所述当前终端标识对比,判断各所述用户终端标识中是否存在与所述当前终端标识匹配的目标用户终端标识;
若存在所述目标用户终端标识,则根据所述目标用户终端标识的有效性,判断是否存在与所述访问请求对应的历史访问记录;
若不存在所述目标用户终端标识,则判定不存在与所述访问请求对应的历史访问记录。
可选地,所述根据所述目标用户终端标识的有效性,判断是否存在与所述访问请求对应的历史访问记录的步骤包括:
读取与所述目标用户终端标识对应的历史时间戳,并生成所述历史时间戳与所述访问请求携带的当前时间戳之间的时间段信息;
判断所述时间段信息是否在预设时间区间内,若在所述预设时间区间内,则判定所述目标用户终端标识有效,存在与所述访问请求对应的历史访问记录;
若所述时间段信息未在预设时间区间内,则判定所述目标终端标识无效,不存在与所述访问请求对应的历史访问记录。
可选地,所述将所述访问请求转发到所述目标服务器的步骤之后包括:
将所述访问请求对应的请求会话、所述访问请求携带的当前时间戳和携带的所述用户终端的终端标识,与所述目标服务器的目标服务器标识以键值对的格式绑定,形成所述对应关系后进行缓存;
其中,所述终端标识形成键值对中的键,所述请求会话、所述当前时间戳和所述目标服务器标识形成键值对中的值。
可选地,所述形成对应关系后进行缓存的步骤之后包括:
当检测到达预设清理周期时,判断缓存的所述对应关系的缓存时长是否达到预设时长;
若达到预设时长,则将缓存的所述对应关系传输到预设存储单元存储,并监测在预设删除周期内是否接收到调用请求;
若在预设周期内接收到所述调用请求,则将所述对应关系调出所述预设存储单元,切换为缓存状态;
若在预设周期内未接收到所述调用请求,则将所述对应关系从预设存储单元中删除。
可选地,所述将所述访问请求转发到所述目标服务器的步骤之后包括:
查找所述目标服务器的目标访问曲线和目标历史时段访问量,并根据所述访问请求更新所述目标访问曲线和所述目标历史时段访问量。
可选地,所述将所述访问请求转发到所述目标服务器的步骤之前包括:
判断所述目标服务器的用户访问量是否大于预设阈值,若大于预设阈值,则读取对所述目标服务器进行访问的各用户终端的刷新信息;
判断各所述刷新信息中是否存在大于预设时长未刷新的目标刷新信息,若存在所述目标刷新信息,则切断与所述目标刷新信息对应用户终端的访问,以执行将所述访问请求转发到所述目标服务器的步骤;
若不存在所述目标刷新信息,则获取各所述用户终端的访问信息,并查找各所述访问信息中访问量大于预设访问阈值的目标访问信息;
读取与所述目标访问信息对应用户终端的权限等级,并限制所述权限等级为普通等级的用户终端的访问速度,以执行将所述访问请求转发到所述目标服务器的步骤。
进一步地,为实现上述目的,本发明还提供一种基于用户访问量的负载均衡系统,所述基于用户访问量的负载均衡系统包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的控制程序,所述控制程序被所述处理器执行时实现如上所述的基于用户访问量的负载均衡方法的步骤。
进一步地,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有控制程序,所述控制程序被处理器执行时实现如上所述的基于用户访问量的负载均衡方法的步骤。
本发明的基于用户访问量的负载均衡方法、系统及可读存储介质,当接收到用户终端发送的访问请求时,先依据缓存的用户终端标识与服务器标识之间的对应关系,判断是否存在与该访问请求对应的历史访问记录;其中,对应关系体现了距离当前较短时段内终端对服务器访问所形成的访问记录,若经判定存在历史访问记录,则可依据对应关系查找出对应的历史服务器,进而将访问请求转发到历史服务器,实现快速访问。若经判断不存在历史访问记录,则需要将访问请求转发到服务器进行访问;此时,依据各个服务器的用户访问量,确定出目标服务器,并将访问请求转发到目标服务器进行访问。该目标服务器是经统计各个服务器中具有最少用户访问量的服务器,将访问请求转发到目标服务器,通过简单的统计计算即实现了各服务器之间的负载均衡,避免了复杂计算所带来的资源占用和消耗问题,且有利于用户快速访问获取资源。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于用户访问量的负载均衡系统,该基于用户访问量的负载均衡系统可以包括:用户终端、诸如redis缓存的缓存器,网关和诸如Tomcat的服务器。其中,用户终端通过网关向服务器发起访问请求,对服务器进行访问;缓存器则对访问过程中的数据进行缓存。
请参照图1,图1为本发明基于用户访问量的负载均衡系统实施例方案涉及的硬件运行环境的结构示意图。
如图1所示,该基于用户访问量的负载均衡系统还可以包括处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的基于用户访问量的负载均衡系统的硬件结构并不构成对基于用户访问量的负载均衡系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及控制程序。其中,操作系统是管理和控制基于用户访问量的负载均衡系统与软件资源的程序,支持网络通信模块、用户接口模块、控制程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口1003。
在图1所示的基于用户访问量的负载均衡系统硬件结构中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
接收用户终端发送的访问请求,并根据缓存的用户终端标识与服务器标识之间的对应关系,判断是否存在与所述访问请求对应的历史访问记录;
若存在所述历史访问记录,则从所述对应关系中查找与所述历史访问记录对应的历史服务器,并将所述访问请求转发到所述历史服务器;
若不存在所述历史访问记录,则根据各个服务器的用户访问量,确定目标服务器,并将所述访问请求转发到所述目标服务器。
进一步地,所述根据各个服务器的用户访问量,确定目标服务器的步骤包括:
根据缓存的所述对应关系,确定各个服务器的用户访问量,并获取各个服务器的访问曲线和历史时段访问量;
对于每个所述服务器,均根据所述服务器的访问曲线和历史时段访问量,生成修正系数,并基于所述修正系数对所述服务器的用户访问量进行修正,以更新所述服务器的用户访问量;
在各个所述服务器的用户访问量均更新完成后,将更新的各所述用户访问量对比,确定更新的各所述用户访问量中的最小值,并将具有所述最小值的服务器确定为所述目标服务器。
进一步地,所述根据缓存的用户终端标识与服务器标识之间的对应关系,判断是否存在与所述访问请求对应的历史访问记录的步骤包括:
读取所述访问请求携带的当前终端标识,并将所述对应关系中的各用户终端标识与所述当前终端标识对比,判断各所述用户终端标识中是否存在与所述当前终端标识匹配的目标用户终端标识;
若存在所述目标用户终端标识,则根据所述目标用户终端标识的有效性,判断是否存在与所述访问请求对应的历史访问记录;
若不存在所述目标用户终端标识,则判定不存在与所述访问请求对应的历史访问记录。
进一步地,所述根据所述目标用户终端标识的有效性,判断是否存在与所述访问请求对应的历史访问记录的步骤包括:
读取与所述目标用户终端标识对应的历史时间戳,并生成所述历史时间戳与所述访问请求携带的当前时间戳之间的时间段信息;
判断所述时间段信息是否在预设时间区间内,若在所述预设时间区间内,则判定所述目标用户终端标识有效,存在与所述访问请求对应的历史访问记录;
若所述时间段信息未在预设时间区间内,则判定所述目标终端标识无效,不存在与所述访问请求对应的历史访问记录。
进一步地,所述将所述访问请求转发到所述目标服务器的步骤之后,处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
将所述访问请求对应的请求会话、所述访问请求携带的当前时间戳和携带的所述用户终端的终端标识,与所述目标服务器的目标服务器标识以键值对的格式绑定,形成所述对应关系后进行缓存;
其中,所述终端标识形成键值对中的键,所述请求会话、所述当前时间戳和所述目标服务器标识形成键值对中的值。
进一步地,所述形成对应关系后进行缓存的步骤之后,处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
当检测到达预设清理周期时,判断缓存的所述对应关系的缓存时长是否达到预设时长;
若达到预设时长,则将缓存的所述对应关系传输到预设存储单元存储,并监测在预设删除周期内是否接收到调用请求;
若在预设周期内接收到所述调用请求,则将所述对应关系调出所述预设存储单元,切换为缓存状态;
若在预设周期内未接收到所述调用请求,则将所述对应关系从预设存储单元中删除。
进一步地,所述将所述访问请求转发到所述目标服务器的步骤之后,处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
查找所述目标服务器的目标访问曲线和目标历史时段访问量,并根据所述访问请求更新所述目标访问曲线和所述目标历史时段访问量。
进一步地,所述将所述访问请求转发到所述目标服务器的步骤之前,处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
判断所述目标服务器的用户访问量是否大于预设阈值,若大于预设阈值,则读取对所述目标服务器进行访问的各用户终端的刷新信息;
判断各所述刷新信息中是否存在大于预设时长未刷新的目标刷新信息,若存在所述目标刷新信息,则切断与所述目标刷新信息对应用户终端的访问,以执行将所述访问请求转发到所述目标服务器的步骤;
若不存在所述目标刷新信息,则获取各所述用户终端的访问信息,并查找各所述访问信息中访问量大于预设访问阈值的目标访问信息;
读取与所述目标访问信息对应用户终端的权限等级,并限制所述权限等级为普通等级的用户终端的访问速度,以执行将所述访问请求转发到所述目标服务器的步骤。
本发明基于用户访问量的负载均衡系统的实施方式与下述基于用户访问量的负载均衡方法各实施例基本相同,在此不再赘述。
本发明提供一种基于用户访问量的负载均衡方法,参照图2,图2为本发明基于用户访问量的负载均衡方法第一实施例的流程示意图。
本发明实施例提供了基于用户访问量的负载均衡方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。具体地,本实施例基于用户访问量的负载均衡方法包括:
步骤S10,接收用户终端发送的访问请求,并根据缓存的用户终端标识与服务器标识之间的对应关系,判断是否存在与所述访问请求对应的历史访问记录;
本实施例中基于用户访问量的负载均衡方法应用于基于用户访问量的负载均衡系统内的网关,由网关依据历史访问记录或各个服务器的用户访问量,将用户终端发起的访问请求转发到不同的服务器,实现各个服务器之间的负载均衡。
具体地,对于用户终端每次所访问的服务器,读取用户终端标识和服务器标识形成为对应关系进行缓存。网关对于接收的用户终端发送的新的访问请求,先根据缓存的该类用户终端标识和服务器标识之间的对应关系,判断是否存在与访问请求所对应的历史访问记录。其中,访问请求携带有其所来源用户终端的标识,若该标识存在于对应关系中,则说明该用户终端在此前发起过对服务器进行访问的访问请求;反之,若标识不存在于对应关系中,则说明用户终端为新发起访问请求的终端。并且,缓存的对应关系具有随时间更新的特征,即,仅缓存距离当前时间某一时段内的对应关系;如设定时段为一小时,若当前时间为下午两点,则缓存下午一点到两点之间生成的对应关系,若当前时间为下午三点,则缓存下午两点到三点之间生成的对应关系,以避免缓存的对应关系过多,而影响访问请求的响应。
步骤S20,若存在所述历史访问记录,则从所述对应关系中查找与所述历史访问记录对应的历史服务器,并将所述访问请求转发到所述历史服务器;
进一步地,若经判定存在与访问请求对应的历史访问记录,则依据访问请求携带的用户终端标识,对对应关系进行查找。从对应关系中查找出用户终端标识所对应的服务器标识,进而将具有该服务器标识的服务器作为与历史访问记录对应的历史服务器。此后,将访问请求转发到该历史服务器进行访问,因历史访问记录中缓存了用户终端对历史服务器进行访问的数据,故将访问请求直接转发到历史服务器,可借助缓存的访问数据实现快速访问。
步骤S30,采若不存在所述历史访问记录,则根据各个服务器的用户访问量,确定目标服务器,并将所述访问请求转发到所述目标服务器。
更进一步地,若经对应关系判定不存在与访问请求对应的历史访问记录,则需要将访问请求转发到当前提供服务的某一台服务器上。而当前提供服务的不同服务器之间在所接入访问请求的数量上具有差异性,即不同服务器具有不同的负载;故为了快速访问,需将访问请求转发到负载较少的服务器上。
其中,负载的大小通过用户访问量体现,用户访问量越多则负载越大,服务器所接入的访问请求越多,用户访问量越少则负责越小,服务器所接入的访问请求越少。因对应关系体现了用户终端对服务器的访问,故可通过该对应关系来确定各个服务器的用户访问量大小,进而依据各个服务器用户访问量的大小,确定用户访问量最小的服务器作为目标服务器为用户终端提供服务。将访问请求转发到目标服务器,对目标服务器进行访问,满足用户终端的访问需求。
可理解地,多个服务器可能因用户访问量巨大,而使得每个服务器均出现负载超标的情况。此时,即便确定出用户访问量相对较少的目标服务器,其对用户终端所能提供的服务也不是优质服务。故在确定出目标服务器之后,将访问请求转发到目标服务器之前,需要对目标服务器是否可提供相对优质服务进行界定。具体地,所述将所述访问请求转发到所述目标服务器的步骤之前包括:
步骤a1,判断所述目标服务器的用户访问量是否大于预设阈值,若大于预设阈值,则读取对所述目标服务器进行访问的各用户终端的刷新信息;
步骤a2,判断各所述刷新信息中是否存在大于预设时长未刷新的目标刷新信息,若存在所述目标刷新信息,则切断与所述目标刷新信息对应用户终端的访问,以执行将所述访问请求转发到所述目标服务器的步骤;
步骤a3,若不存在所述目标刷新信息,则获取各所述用户终端的访问信息,并查找各所述访问信息中访问量大于预设访问阈值的目标访问信息;
步骤a4,读取与所述目标访问信息对应用户终端的权限等级,并限制所述权限等级为普通等级的用户终端的访问速度,以执行将所述访问请求转发到所述目标服务器的步骤。
进一步地,预先设置表示适于提供相对优质服务的预设阈值,若服务器的用户访问量低于该预设阈值,则说明服务器可提供相对优质的服务,反之则不能提供相对优质的服务。并且,可针对不同服务器设定不同的预设阈值,服务器所具有的硬件资源越好,性能优越,则预设阈值越大,反之则越小。
更进一步地,将确定的目标服务器的用户访问量和该预设阈值对比,判断用户访问量是否大于该预设阈值。并且,对于针对每个服务器单独设定预设阈值的情形,则在确定出目标服务器之后,读取其预设阈值;进而将目标服务器的用户访问量和目标服务器的预设阈值对比,判断用户访问量是否大于其预设阈值。
进一步地,若经确定用户访问量大于预设阈值,则说明目标服务器当前负载较多,不能提供相对优质的服务。对于此,本实施例设置有将占用资源但未实际使用的用户终端进行强制切断访问的机制。
具体地,从缓存器中获取当前接入到目标服务器,对目标服务器进行访问的各用户终端的刷新信息。该刷新信息体现了用户终端的持有者对用户终端当前的使用情况,若刷新信息随着时间更新,则说明持有者在通过用户终端获取目标服务器中的信息;若刷新信息在长时间未更新,则说明持有者未通过用户终端获取目标服务器中的信息。因此,可依据刷新信息的更新情况判定用户终端是否在通过目标服务器获取资源。
进一步地,预先依据需求设定预设时长,将各项刷新信息的刷新时长和该预设时长对比,判断是否存在大于预设时长的刷新时长。其中,大于预设时长的刷新时长体现了大于预设时长未刷新的刷新信息,将该类刷新信息作为目标刷新信息进行区分。以此,通过是否存在大于预设时长的刷新时长的判断,即可确定各项刷新信息中存在大于预设时长未刷新的目标刷新信息。
更进一步地,若经对比存在大于预设时长未刷新的目标刷新信息,则查找目标刷新信息所来源的用户终端,并将该用户终端对目标服务器的访问切断,避免其对目标服务器内资源的无效占用,以便将接收到的新访问请求转发到目标服务器,将新的用户终端接入目标服务器进行访问,满足新用户终端的访问需求。
进一步地,若经对比确定不存在目标刷新信息,则说明当前接入到目标服务器的用户终端均对目标服务器进行有效访问,不能切断访问。此时,启动限速机制。具体地,从缓存器中获取各个用户终端的访问信息,该访问信息体现了用户终端访问的数据量(以下简称访问量)。并且,预先设置表征访问量大小的预设访问阈值,对于获取的各项访问信息,分别将其中的访问量和预设访问阈值对比,查找各个访问量中大于预设访问阈值的目标访问量,进而将具有目标访问量的访问信息确定为目标访问信息,形成限速依据。
需要说明的是,若经对比确定各个访问量中不存在大于预设访问阈值的目标访问量,则对各个访问量按照大小关系进行排列,访问量大的排在前列,访问量小的排在后列,得到访问量数列。此后,选取排列在前预设位的访问量作为目标访问量,并将该类目标访问量所来源的访问信息确定为目标访问信息,形成限速依据。
更进一步地,对于目标访问信息所来源的用户终端,读取其权限等级,并从其中筛选出权限等级为普通等级的用户终端,进而限制该类普通用户终端的访问速度,避免其占用目标服务器较多的访问资源而影响新接入用户终端的访问,有利于将接收到的新访问请求转发到目标服务器,满足新用户终端的访问需求。
可理解地,用户对服务器的访问具有随时间波动的特性,在不同时间访问服务器的用户数量不同。因而,本实施例为了体现用户访问服务器的时间规律,针对各个服务器生成访问量随时间变化的访问曲线,以及统计各日期不同时段内的访问量生成历史时段访问量。并且,针对访问曲线和历史时段访问量设置更新机制,具体地,所述将所述访问请求转发到所述目标服务器的步骤之后包括:
步骤b,查找所述目标服务器的目标访问曲线和目标历史时段访问量,并根据所述访问请求更新所述目标访问曲线和所述目标历史时段访问量。
进一步地,在将访问请求转发到目标服务器之后,则针对此前目标服务器生成的目标访问曲线和目标历史时段访问量进行查找。并且,将转发的访问请求依据发起时间添加到目标访问曲线,以及对目标历史时段访问量进行计数统计,以更新目标访问曲线和目标历史时段访问量。
需要说明的是,若此前未针对目标服务器生成目标访问曲线和目标历史时段访问量,则调用访问曲线模板,并将转发的访问请求依据发起时间添加到访问曲线模板,生成为目标服务器的目标访问曲线。同时,调用历史时段访问量的计数模板,并依据访问请求的发起时间进行计算统计,获得目标服务器的目标历史时段访问量。由此,通过生成目标服务器的目标访问曲线和目标历史时段访问量,用于后续更新操作,体现目标服务器的访问量随时间变化的情况。
本发明的基于用户访问量的负载均衡方法,当接收到用户终端发送的访问请求时,先依据缓存的用户终端标识与服务器标识之间的对应关系,判断是否存在与该访问请求对应的历史访问记录;其中,对应关系体现了距离当前较短时段内终端对服务器访问所形成的访问记录,若经判定存在历史访问记录,则可依据对应关系查找出对应的历史服务器,进而将访问请求转发到历史服务器,实现快速访问。若经判断不存在历史访问记录,则需要将访问请求转发到服务器进行访问;此时,依据各个服务器的用户访问量,确定出目标服务器,并将访问请求转发到目标服务器进行访问。该目标服务器是经统计各个服务器中具有最少用户访问量的服务器,将访问请求转发到目标服务器,通过简单的统计计算即实现了各服务器之间的负载均衡,避免了复杂计算所带来的资源占用和消耗问题,且有利于用户快速访问获取资源。
进一步地,请参照图3,基于本发明基于用户访问量的负载均衡方法的第一实施例,提出本发明基于用户访问量的负载均衡方法第二实施例。
所述基于用户访问量的负载均衡方法第二实施例与所述基于用户访问量的负载均衡方法第一实施例的区别在于,所述根据各个服务器的用户访问量,确定目标服务器的步骤包括:
步骤S31,根据缓存的所述对应关系,确定各个服务器的用户访问量,并获取各个服务器的访问曲线和历史时段访问量;
步骤S32,对于每个所述服务器,均根据所述服务器的访问曲线和历史时段访问量,生成修正系数,并基于所述修正系数对所述服务器的用户访问量进行修正,以更新所述服务器的用户访问量;
步骤S33,在各个所述服务器的用户访问量均更新完成后,将更新的各所述用户访问量对比,确定更新的各所述用户访问量中的最小值,并将具有所述最小值的服务器确定为所述目标服务器。
本实施例依据各服务器的访问曲线和历史时段访问量所体现的访问请求变化情况,对各服务器的用户访问量进行修正更新,以避免各服务器在短时间内爆发大量访问请求而影响所提供服务的优质性。
具体地,缓存的对应关系在体现用户终端所访问服务器的同时,也体现了当前对各服务器进行访问的用户量。故可依据该对应关系,统计当前对各服务器进行访问的用户访问量。同时,从存储单元中获取各个服务器的访问曲线和历史时段访问量;其中,存储单元为不同于缓存器的存储机制,存储时间更长,不轻易清除。
进一步地,每个服务器所具有用户访问量、访问曲线和历史时段访问量均不相同,故为了体现各个服务器的用户量变化特性,需针对每个服务器分别处理。具体地,对于每个服务器,均先依据其访问曲线和历史时段访问量,生成用于对用户访问量进行修正的修正系数。其中,修正系数是围绕某一数值变化的系数,如数值1或数值100,若等于该数值则说明从访问曲线和历史时段访问量体现的用户量变化来看,未来短时间内的用户量变化不大,可用用户访问量体现服务器的用户量。若小于该数值则说明从访问曲线和历史时段访问量体现的用户量变化来看,未来短时间内的用户量变小,需要将用户访问量调整为较小的数值。若大于该数值则说明从访问曲线和历史时段访问量体现的用户量变化来看,未来短时间内的用户量变大,需要将用户访问量调整为较大的数值。
更进一步地,在生成修正系数时,先将历史周期内具有同一周期特性的不同日期在当前时段的历史时段访问量生成为访问量均值,如历史周期以星期计算,则可将具体的星期数作为周期特性,若当前时段为星期一的上午9点,则可将历史一个月以内每个星期一的上午8点到9点的历史时段访问量生成为访问量均值。先计算每个星期一上午8点到9点之间的的周访问量均值,再对四个周访问量均值再次进行均值计算,获得最终的访问量均值。
进一步地,根据访问曲线确定未来短时间内用户访问量的变化趋势,并依据访问量均值与用户访问量之间的大小关系,生成修正系数。若变化趋势为变大,且用户访问量大于访问量均值,则说明该服务器的用户量会逐步增加,依据访问曲线在当前用户访问量上的切线所体现的变化大小,以及用户访问量与访问量均值之间的差值大小,生成修正系数。切线所体现的变化大小越大,差值大小越大,则说明未来用户量爆发式增长的可能性越大,故生成较大的修正系数。反之,则生成相对较小的修正系数。若变化趋势为变小,且用户访问量小于访问量均值,则说明该服务器的用户量会逐步减少。同样依据切线所体现的变化大小,以及差值大小生成修正系数,在此不作赘述。
更进一步地,用修正系数对服务器的用户访问量进行修正,实现对服务器用户访问量的更新。并且,修正的方式可以是用修正系数和用户访问量做乘积运算,得到运算结果作为新的用户访问量。该更新的用户访问量体现了服务器用户量的变化趋势,有利于避免在服务器用户量爆发式增长的情况下,将访问请求接入到服务器。
进一步地,在各个服务器的用户访问量均更新完成后,将各个更新的用户访问量之间进行对比,确定其中的最小值。进而将具有最小值的服务器确定为目标服务器,并将访问请求接入其中进行访问。
本实施例通过每个服务器的访问曲线和历史时段访问量,对各自的用户访问量进行修正更新,得到更新的用户访问量进行对比,确定其中的最小值。该最小值不但体现了当前用户量最小的服务器,也是未来短时间内用户量最小的服务器;使得以此确定的目标服务器在未来短时间内均可提供优质的服务,在实现各服务器之间负载均衡的同时,还提升了负载均衡的准确性。
进一步地,请参照图4,基于本发明基于用户访问量的负载均衡方法的第一或第二实施例,提出本发明基于用户访问量的负载均衡方法第三实施例。
所述基于用户访问量的负载均衡方法第三实施例与所述基于用户访问量的负载均衡方法第一或第二实施例的区别在于,所述根据缓存的用户终端标识与服务器标识之间的对应关系,判断是否存在与所述访问请求对应的历史访问记录的步骤包括:
步骤S11,读取所述访问请求携带的当前终端标识,并将所述对应关系中的各用户终端标识与所述当前终端标识对比,判断各所述用户终端标识中是否存在与所述当前终端标识匹配的目标用户终端标识;
步骤S12,若存在所述目标用户终端标识,则根据所述目标用户终端标识的有效性,判断是否存在与所述访问请求对应的历史访问记录;
步骤S13,若不存在所述目标用户终端标识,则判定不存在与所述访问请求对应的历史访问记录。
本实施例将访问时间作为影响因素,确定存在的历史访问记录是否有效,使得历史访问记录的判断更为准确。具体地,从接收的访问请求中读取出携带的当前终端标识,该当前终端标识为发起访问请求的用户终端所具有的唯一性标识。进而将该当前终端标识和对应关系中的各用户终端标识对比,判断各用户终端标识中是否存在与当前终端标识匹配的目标用户终端标识,该匹配的目标用户终端标识即为与当前终端标识相同的用户终端标识。若判定存在目标用户终端标识,则说明该用户终端对服务器进行过访问,具有存在与访问请求对应历史访问记录的可能;若不存在该目标用户终端标识,则说明用户终端未对服务器进行过访问,不存在与访问请求对应的历史访问记录。
可理解地,对于存在目标用户终端标识的情形,可能是用户终端在很久之前对服务器进行过访问,该类历史访问记录已不具有时效性,记录数据其实质已被清除,只是存在目标用户终端标识,用以体现用户终端对服务器进行过访问。对于此,需要依据目标用户终端标识的有效性,判定是否存在与访问请求对应的历史访问记录。
具体地,所述根据所述目标用户终端标识的有效性,判断是否存在与所述访问请求对应的历史访问记录的步骤包括:
步骤S121,读取与所述目标用户终端标识对应的历史时间戳,并生成所述历史时间戳与所述访问请求携带的当前时间戳之间的时间段信息;
步骤S122,判断所述时间段信息是否在预设时间区间内,若在所述预设时间区间内,则判定所述目标用户终端标识有效,存在与所述访问请求对应的历史访问记录;
步骤S123,若所述时间段信息未在预设时间区间内,则判定所述目标终端标识无效,不存在与所述访问请求对应的历史访问记录。
进一步地,对目标用户终端标识的历史时间戳进行读取,该历史时间戳体现了目标用户终端标识所对应用户终端访问服务器的时间。并且,将当前访问请求的发起时间作为其携带的当前时间戳,将当前时间戳和历史时间戳生成为时间段信息,通过时间段信息体现目标用户终端标识所对应用户终端访问服务器距离当前的时间。
更进一步地,预先依据需求设定表征时间长短的预设时间区间,将时间段信息和预设时间区间对比,判断时间段信息是否在预设时间区间内。若在预设时间区间内,则说明目标用户终端标识所对应用户终端在近期访问了服务器,目标用户终端标识有效,即与访问请求对应的历史访问记录数据尚未被清除;针对该情形,判定存在与访问请求对应的历史访问记录。反之,若经对比确定时间段信息不在预设时间区间内,则说明目标用户终端标识所对应用户终端在很久之前访问了服务器,目标用户终端标识无效,即与访问请求对应的历史访问记录数据实际已被清除;针对此情形,判定不存在与访问请求对应的历史访问记录。
本实施例将访问时间作为用户终端访问服务器,是否生成有效历史访问记录的因素进行考量,用户终端只有在近期访问服务器,才形成历史访问记录的数据进行缓存,进而将当前的访问请求转发到该历史访问记录对应的历史服务器。以避免将大量的历史访问记录缓存缓存,导致占用缓存资源存储并不具有参考价值或参考价值很低的记录数据,释放了缓存空间,且可避免从大量无价值的记录数据中查询历史服务器,提高了查询速度。
进一步地,请参照图5,基于本发明基于用户访问量的负载均衡方法的第一、第二或第三实施例,提出本发明基于用户访问量的负载均衡方法第四实施例。
所述基于用户访问量的负载均衡方法第四实施例与所述基于用户访问量的负载均衡方法第一、第二或第三实施例的区别在于,所述将所述访问请求转发到所述目标服务器的步骤之后包括:
步骤S40,将所述访问请求对应的请求会话、所述访问请求携带的当前时间戳和携带的所述用户终端的终端标识,与所述目标服务器的目标服务器标识以键值对的格式绑定,形成所述对应关系后进行缓存;
其中,所述终端标识形成键值对中的键,所述请求会话、所述当前时间戳和所述目标服务器标识形成键值对中的值。
本实施例基于键值对缓存对应关系,并且针对缓存的对应关系设置定时清除机制。具体地。在将访问请求转发到目标服务器之后,则将访问请求所对应的请求会话、会话请求携带的当前时间戳和携带的终端标识,与目标服务器的目标服务器标识以键值对格式进行绑定;其中,请求会话体现了用户终端与目标服务器进行通讯的过程,当前时间戳体现了用户终端访问目标服务器的时间,终端标识为发起访问请求的用户终端唯一性的标识符号,目标服务器标识则是表征目标服务器唯一性的标识符号。将终端标识形成键值对中的键key,将请求会话、当前时间戳和目标服务器标识形成键值对中的值value,由键key和值value组成的键值对形成对应关系,并将所形成的对应关系缓存到缓存器,以通过键key即可实现值value的快速查找。
可理解地,随着访问请求的增加,缓存器中所缓存的对应关系也相应增多,为了确保后续对应关系的正常缓存,设置有定时清除机制。具体地,所述形成对应关系后进行缓存的步骤之后包括:
步骤S50,当检测到达预设清理周期时,判断缓存的所述对应关系的缓存时长是否达到预设时长;
步骤S60,若达到预设时长,则将缓存的所述对应关系传输到预设存储单元存储,并监测在预设删除周期内是否接收到调用请求;
步骤S70,若在预设周期内接收到所述调用请求,则将所述对应关系调出所述预设存储单元,切换为缓存状态;
步骤S80,若在预设周期内未接收到所述调用请求,则将所述对应关系从预设存储单元中删除。
进一步地,预先设定对缓存器中所缓存对应关系进行定时清除的预设清理周期,每当检测到达该预设清理周期时,则获取缓存器中所缓存的各个对应关系的缓存时长,并将缓存时长和预先设定的预设时长进行对比。其中,预设时长为预先设置表示最长缓存的时间。若经对比确定缓存时长大于或等于预设时长,则说明缓存时长达到预设时长,则将缓存的对应关系传输到预设存储单元存储。该预设存储单元为预先设置用于存储的装置,不同于缓存器,其存储的时间更长。
更进一步地,对于预设存储单元的存储同样设置定时清理机制,在将对应关系传输到预设存储单元存储后,实时监测在预设删除周期内是否接收到调用请求,该预设删除周期为针对预设存储单元进行定时清理的时期。若接收到调用请求,则说明具有对对应关系再次使用的需求,故将对应关系从预设存储单元调出,转到缓存器中缓存,对应关系的状态也相应的切换为缓存状态。若在预设删除周期内未接收到调用请求,则说明对应关系在较长时间内均未使用,继续存储的价值不大,将目标对应关系从预设存储单元删除,以释放存储空间。
本实施例通过将终端标识、请求会话、当前时间戳和目标服务器标识以键值对格式形成对应关系缓存,有利于通过终端标识快速查找到用户终端在何时、针对哪个服务器发起给何种类型的请求会话。同时,将缓存时长达到预设时长的对应关系转移到预设存储单元存储,并在存储的预设周期内未接收到调用请求才进行删除,避免直接将对应关系从缓存器中删除,在释放缓存空间的同时,还可从预设存储单元中快速调出对应关系。
本发明实施例还提出一种可读存储介质。所述可读存储介质上存储有控制程序,所述控制程序被所述处理器执行时实现如上所述基于用户访问量的负载均衡方法的步骤。
本发明可读存储介质可以为计算机可读存储介质,其具体实施方式与上述基于用户访问量的负载均衡方法各实施例基本相同,在此不再赘述。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。