一种负载均衡方法及负载均衡器技术

技术编号:15574821 阅读:90 留言:0更新日期:2017-06-13 16:43
本发明专利技术公开了一种负载均衡方法及负载均衡器,前者在请求信息中携带有指定负载均衡策略时,查找是否配置有指定负载均衡策略;如是,则调用指定负载均衡策略执行文件;如未配置指定负载均衡策略或者请求信息中未携带指定负载均衡策略,则查找是否针对请求信息中指定的服务类型配置了专属负载均衡策略;如是,则调用专属负载均衡策略执行文件;如否,则调用默认负载均衡策略执行文件;通过调用相应负载均衡策略执行文件从服务列表中筛选出满足请求信息要求的服务端。本发明专利技术支持客户端动态选择负载均衡策略,及支持为不同服务类型配置专属负载均衡策略,使得同一负载均衡器可同时支持为多个不同服务类型的服务集群。

【技术实现步骤摘要】
一种负载均衡方法及负载均衡器
本专利技术涉及网络通讯
,尤其涉及一种负载均衡方法及负载均衡器。
技术介绍
随着互联网的快速发展和业务量的不断提高,基于网络的数据访问流量迅速增长,相对于网络技术的发展,服务器处理速度和内存访问速度的增长却远远低于网络带宽和应用服务的增长。随着云计算的兴起,企业后台服务通常使用负载均衡服务器将来自外部的高并发请求发送到服务集群来处理,以达到对外部请求的快速准确响应,其中的负载均衡服务器简言之就是一种将大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间的后台服务。现有的负载均衡服务器如LVS(LinuxVirtualServer,Linux虚拟服务器)、Nginx、Haproxy等都已能够做到消息的实时转发和一定程度上的负载均衡,但这些负载均衡服务器都存在以下缺点:1)现有的负载均衡器无法根据新服务的上报自动添加该新服务类型;2)现有的负载均衡器只能够支持一种设定的负载均衡策略,例如轮询、权重等,无法根据企业业务逻辑需求定制企业自身的负载均衡策略,除非更改源代码,这些显然耗费财力物力;3)当外部需求变化时或有新需求时,无法根据外部需求实时配置策略,实时生效,响应需求,也就是无法在不重启负载均衡服务的情况下进行负载均衡策略的修改;因此,如何使得负载均衡器能够快速跟进外部需求,动态变更负载策略已成为企业后台基础服务中一个亟待解决的问题。
技术实现思路
本专利技术的一个目的在于克服现有技术中的不足,提供了一种可针对提供不同服务类型的服务集群提供负载均衡的负载均衡方法。为实现上述目的,本专利技术采用的技术方案为:一种负载均衡方法,包括:在接收到客户端发来的请求信息后,查找所述请求信息中是否携带有指定负载均衡策略;如所述请求信息中携带有所述指定负载均衡策略,则查找是否配置有所述指定负载均衡策略;如是,则调用所述指定负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端;如未配置所述指定负载均衡策略或者所述请求信息中未携带所述指定负载均衡策略,则查找是否针对所述请求信息中指定的服务类型配置了专属负载均衡策略;如是,则调用所述专属负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端;如否,则调用默认负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端。优选的是,所述方法还包括:在所述服务列表中,按照服务类型对服务端进行分组。优选的是,所述方法还包括:在接收到服务端发来的上报信息后,对所述服务列表进行更新,其中,所述上报信息包括服务端的地址信息和服务端的服务类型。优选的是,所述在接收到服务端发来的上报信息后,对所述服务列表进行更新包括:在所述服务列表中不存在所述上报信息中的服务类型时,将所述上报信息中的服务类型添加至所述服务列表中;在所述上报信息中的服务类型下的服务端组中不存在所述上报信息中的服务端时,将所述上报信息中的服务端添加至所述上报信息中的服务类型下的服务端组中。优选的是,所述在接收到服务端发来的上报信息后,对所述服务列表进行更新还包括:在所述上报信息中的服务类型下的服务端组中存在所述上报信息中的服务端时,将所述上报信息中的服务端信息从上报服务中更新或者移出。优选的是,所有负载均衡策略执行文件均为脚本文件。优选的是,所述脚本文件均为Lua脚本文件。优选的是,所述方法还包括:在所述从服务列表中筛选出满足所述请求信息要求的服务端后,执行如下步骤:将筛选出的服务端的地址信息发送给所述客户端;或者,将所述请求信息发送至筛选出的服务端,及在接收到筛选出的服务端返回的结果信息后,将所述结果信息返回至所述客户端。本专利技术的另一个目的在于克服现有技术中的不足,提供了一种可针对提供不同服务类型的服务集群提供负载均衡的负载均衡器。为了解决上述问题,本专利技术采用的技术方案为:一种负载均衡器,包括:接收模块,用于接收客户端发来的请求信息;提取模块,用于查找所述请求信息中是否携带有指定负载均衡策略;第一执行模块,用于在所述请求信息中携带有所述指定负载均衡策略时,查找是否配置有所述指定负载均衡策略,如是,则调用所述指定负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端;以及,第二执行模块,用于在未配置所述指定负载均衡策略或者所述请求信息中未携带所述指定负载均衡策略时,查找是否针对所述请求信息中指定的服务类型配置了专属负载均衡策略,如是,则调用所述专属负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端;如否,则调用默认负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端。优选的是,所述负载均衡器还包括:服务列表维护模块,用于在所述服务列表中,按照服务类型对服务端进行分组。优选的是,所述服务列表维护模块还用于在接收到服务端发来的上报信息后,对所述服务列表进行更新,其中,所述上报信息包括服务端的地址信息和服务端的服务类型。优选的是,所述服务列表维护模块包括:服务类型添加单元,用于在所述服务列表中不存在所述上报信息中的服务类型时,将所述上报信息中的服务类型添加至所述服务列表中;以及,服务端添加单元,用于在所述上报信息中的服务类型下的服务端组中不存在所述上报信息中的服务端时,将所述上报信息中的服务端添加至所述上报信息中的服务类型下的服务端组中。优选的是,所述服务列表维护模块还包括:服务端信息处理单元,用于在所述上报信息中的服务类型下的服务端组中存在所述上报信息中的服务端时,将所述上报信息中的服务端信息从上报服务中更新或者移出。优选的是,所有负载均衡策略执行文件均为脚本文件。优选的是,所述脚本文件均为Lua脚本文件。优选的是,所述负载均衡器还包括:发送模块,用于在所述从服务列表中筛选出满足所述请求信息要求的服务端后,将筛选出的服务端的地址信息发送给所述客户端;或者将所述请求信息发送至筛选出的服务端,及在接收到筛选出的服务端返回的结果信息后,将所述结果信息返回至所述客户端。本专利技术的有益效果在于,本专利技术的负载均衡方法及负载均衡器支持客户端动态选择负载均衡策略,及支持根据新服务的动态添加或者扩容自动添加该新服务类型,并且可为不同服务类型配置专属负载均衡策略,使得同一负载均衡器可同时支持多个不同服务类型的服务集群。附图说明图1示出了根据本专利技术所述负载均衡方法的一种实施方式的流程图;图2示出了根据本专利技术所述负载均衡方法中更新服务列表的一种实施方式的流程图;图3示出了根据本专利技术所述负载均衡器的一种实施方式的结构示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。如图1所示,本专利技术的负载均衡方法包括:步骤S1:在接收到客户端发来的请求信息后,查找请求信息中是否携带有指定负载均衡策略,如是则执行步骤S2,如否则执行步骤S4;在此,请求信息中可以携带用于选择负载均衡策略作为指定负载均衡策略的参数。步骤S2:如请求信息中携带有指定负载均衡策略,则查找是否配置有指定负载均衡策略,如是则执行步骤S3,如否则执行步骤S4。步骤S3:调用指定本文档来自技高网...
一种负载均衡方法及负载均衡器

【技术保护点】
一种负载均衡方法,其特征在于,包括:在接收到客户端发来的请求信息后,查找所述请求信息中是否携带有指定负载均衡策略;如所述请求信息中携带有所述指定负载均衡策略,则查找是否配置有所述指定负载均衡策略;如是,则调用所述指定负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端;如未配置所述指定负载均衡策略或者所述请求信息中未携带所述指定负载均衡策略,则查找是否针对所述请求信息中指定的服务类型配置了专属负载均衡策略;如是,则调用所述专属负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端;如否,则调用默认负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端。

【技术特征摘要】
1.一种负载均衡方法,其特征在于,包括:在接收到客户端发来的请求信息后,查找所述请求信息中是否携带有指定负载均衡策略;如所述请求信息中携带有所述指定负载均衡策略,则查找是否配置有所述指定负载均衡策略;如是,则调用所述指定负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端;如未配置所述指定负载均衡策略或者所述请求信息中未携带所述指定负载均衡策略,则查找是否针对所述请求信息中指定的服务类型配置了专属负载均衡策略;如是,则调用所述专属负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端;如否,则调用默认负载均衡策略执行文件,从服务列表中筛选出满足所述请求信息要求的服务端。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述服务列表中,按照服务类型对服务端进行分组。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在接收到服务端发来的上报信息后,对所述服务列表进行更新,其中,所述上报信息包括服务端的地址信息和服务端的服务类型。4.根据权利要求3所述的方法,其特征在于,所述在接收到服务端发来的上报信息后,对所述服务列表进行更新包括:在所述服务列表中不存在所述上报信息中的服务类型时,将所述上报信息中的服务类型添加至所述服务列表中;在所述上报信息中的服务类型下的服务端组中不存在所述上报信息中的服务端时,将所述上报信息中的服务端添加至所述上报信息中的服务类型下的服务端组中。5.根据权利要求4所述的方法,其特征在于,所述在接收到服务端发来的上报信息后,对所述服务列表进行更新还包括:在所述上报信息中的服务类型下的服务端组中存在所述上报信息中的服务端时,将所述上报信息中的服务端信息从上报服务中更新或者移出。6.根据权利要求1至5中任一项所述的方法,其特征在于,所有负载均衡策略执行文件均为脚本文件。7.根据权利要求6所述的方法,其特征在于,所述脚本文件均为Lua脚本文件。8.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:在所述从服务列表中筛选出满足所述请求信息要求的服务端后,执行如下步骤:将筛选出的服务端的地址信息发送给所述客户端;或者,将所述请求信息发送至筛选出的服务端,及在接收到筛选出的服务端返回的结果信息后,将所述结果信息返回至所述客户端。9.一种负载均衡器,其特征在于,包括:接收模块,用于接收客户端发来的请求信息;提取模...

【专利技术属性】
技术研发人员:金豪吴江照张林芳
申请(专利权)人:科大讯飞股份有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1