CN113472901A - 负载均衡方法、装置、设备、存储介质及程序产品 - Google Patents
负载均衡方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113472901A CN113472901A CN202111023588.9A CN202111023588A CN113472901A CN 113472901 A CN113472901 A CN 113472901A CN 202111023588 A CN202111023588 A CN 202111023588A CN 113472901 A CN113472901 A CN 113472901A
- Authority
- CN
- China
- Prior art keywords
- target
- server
- load balancing
- request
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种负载均衡方法、装置、设备、存储介质及程序产品,该方法包括:对访问各个服务器的请求指令进行拦截,并提取所述请求指令的域名信息;根据所述域名信息从预设的配置管理数据库中获取目标路由规则,对所述目标路由规则进行解析,得到所述目标路由规则的路由信息,其中,所述路由信息包括服务器列表;从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器。本发明通过配置管理数据库对负载均衡策略进行管理,以交互方式从配置管理数据库中获取路由规则,可以实现在配置管理数据库中对负载均衡策略的动态修改,从而实现动态负载均衡功能,可以减少配置策略修改所需的人力资源,从而降低运维成本。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种负载均衡方法、装置、设备、存储介质及程序产品。
背景技术
Nginx(engine x)作为一个高性能web服务器,被广泛的运用于前端流量的接入,实现网络流量的转发和负载,是大部分企业服务的入口。在现有的Nginx负载均衡方案中,对于Nginx的负载均衡配置,如域名、上下根和后端服务器的配置等,大多都依赖于运维人员的手动修改,并且在修改后需要重启Nginx服务修改才能生效,无法实现对Nginx配置的动态修改。因此,对Nginx配置的修改需要耗费大量的时间和精力,在配置策略较多,Nginx集群部署的情况下,问题尤为严重,并且对复杂配置的修改也容易出错。
发明内容
本发明的主要目的在于提供一种负载均衡方法、装置、设备、存储介质及程序产品,旨在解决现有技术无法对负载策略策略进行动态修改,在应用集群部署、配置策略较多时,对负载均衡策略的修改需要消耗大量时间和精力且修改容易出错的技术问题。
此外,为实现上述目的,本发明还提供一种负载均衡方法,所述负载均衡方法包括以下步骤:
对访问各个服务器的请求指令进行拦截,并提取所述请求指令的域名信息;
根据所述域名信息从预设的配置管理数据库中获取目标路由规则,对所述目标路由规则进行解析,得到所述目标路由规则的路由信息,其中,所述路由信息包括服务器列表;
从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器。
可选地,所述配置管理数据库中设有键值对,所述键值对包括关键词信息,所述根据所述域名信息从预设的配置管理数据库中获取目标路由规则的步骤,包括:
从所述域名信息中提取关键词,并根据所述关键词从预设的配置管理数据库中的各个键值对中索引目标键值对;
根据所述目标键值对获取目标路由规则。
可选地,所述从所述服务器列表中选择目标服务器的步骤,包括:
确定所述请求指令的请求类型,根据所述请求类型从预设的负载均衡策略中选取目标均衡策略;
利用所述目标均衡策略从所述服务器列表中选择目标服务器。
可选地,所述请求类型包括热点请求,预设的负载均衡策略包括随机策略,当所述请求指令的请求类型为热点请求时,所述目标均衡策略为随机均衡策略,所述利用所述目标均衡策略从所述服务器列表中选择目标服务器的步骤,包括:
获取所述服务器列表中各服务器的编号信息,并利用所述随机均衡策略生成随机数;
利用所述随机数对所述编号信息进行索引,确定目标服务器。
可选地,所述请求类型包括非热点请求,预设的负载均衡策略包括哈希均衡策略,当所述请求指令的请求类型为非热点请求时,所述目标均衡策略为哈希均衡策略,所述利用所述目标均衡策略从所述服务器列表中选择目标服务器的步骤,包括:
根据所述请求指令的域名信息确定所述请求指令的地址信息,并获取所述服务器列表中各服务器的编号信息;
利用所述哈希均衡策略计算所述地址信息的哈希值,并根据所述服务器列表中的服务器数量对所述哈希值进行取模计算,得到所述服务器列表的下标索引值;
利用所述下标索引值索引所述服务器列表中各所述服务器的编号信息,确定目标服务器。
可选地,所述从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器的步骤之后,还包括:
对所述目标路由规则进行缓存,并检测所述目标路由规则的缓存时长是否小于预设时长;
若所述缓存时长小于预设时长,当拦截到与所述请求指令的请求参数相同的请求指令时,返回并执行所述对所述目标路由规则进行解析,得到所述目标路由规则的路由信息的步骤,其中,所述请求参数包括域名信息。
此外,为实现上述目的,本发明还提供一种负载均衡装置,所述负载均衡装置包括:
请求拦截模块,用于对访问各个服务器的请求指令进行拦截,并提取所述请求指令的域名信息;
规则解析模块,用于根据所述域名信息从配置管理数据库中预设的路由策略配置信息中获取目标路由规则,对所述目标路由规则进行解析,得到所述目标路由规则的路由信息,其中,所述路由信息包括服务器列表;
负载均衡模块,用于从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的负载均衡程序,所述负载均衡程序被所述处理器执行时实现如上述的负载均衡方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有负载均衡程序,所述负载均衡程序被处理器执行时实现如上述的负载均衡方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的负载均衡方法的步骤。
本发明实施例提出的一种负载均衡方法、装置、设备、存储介质及程序产品。现有技术中,对负载均衡策略配置的修改依赖于运维人员的手动修改,对于集群部署的应用,配置策略较多时,手动修改需要耗费大量的时间和精力,且容易产生错误修改。与现有技术相比,本发明实施例中,通过对访问各个服务器的请求指令进行拦截,并提取所述请求指令的域名信息;根据所述域名信息从预设的配置管理数据库中获取目标路由规则,对所述目标路由规则进行解析,得到所述目标路由规则的路由信息,其中,所述路由信息包括服务器列表;从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器。通过配置管理数据库对负载均衡策略进行管理,当拦截到请求指令时,从配置管理数据库中匹配路由规则进行负载转发,以交互的方式实现负载均衡功能。同时,通过交互方式实现负载转发可以实现在配置管理数据库中对配置策略的动态修改,以实现动态负载均衡功能,减少配置策略修改所需的人力资源,从而大大降低了运维的成本。
附图说明
图1为本发明实施例提供的终端设备一种实施方式的硬件结构示意图;
图2为本发明负载均衡方法第一实施例的流程示意图;
图3为本发明负载均衡方法第一实施例中基于Redis实现动态负载均衡的流程示意图;
图4为本发明负载均衡装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
本发明实施例负载均衡终端(又叫终端、设备或者终端设备)可以是PC,也可以是智能手机、平板电脑和便携计算机等具有显示和通信功能的可移动式终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及负载均衡程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的负载均衡程序,所述负载均衡程序被处理器执行时实现下述实施例提供的负载均衡方法中的操作。
基于上述设备硬件结构,提出了本发明负载均衡方法的各个实施例。
在本发明负载均衡方法的各个实施例中,用到的关键技术术语包括:
Nginx (engine x) :是一个高性能的 HTTP 和反向代理 web服务器,其特点是占有内存少,并发能力强,被广泛的运用于前端流量的接入,实现网络流量的转发和负载,是大部分企业服务的入口。
LUA:是一个小巧的脚本语言,体积小、启动速度快,可以灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。
OpenResty:是基于Nginx的核心Web应用程序服务器,其内部集成了大量精良的Lua 库、第三方模块以及大多数的依赖项,便于搭建能够处理超高并发、扩展性极高的动态Web 应用、Web 服务和动态网关。
Redis:(Remote Dictionary Server ,即远程字典服务),是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的应用程序接口。
Lua LRU cache:基于Nginx_LUA的缓存利器,可以保存近期使用过的数据。
需要说明的是,传统的基于Nginx的负载均衡策略,在接收到请求指令后,解析请求指令的域名,并根据域名中的上下文根解析负载策略,通过解析出的负载策略将请求指令转发至后端服务器。在Nginx启动后,Nginx配置文件中的域名、上下文根、后端服务器的配置都是无法进行动态修改的,只能通过修改Nginx配置文件,然后重启Nginx后修改才能生效。对配置文件的修改也主要依赖于运维人员的手动修改,当Nginx集群部署,配置策略较多时,手动修改不仅要消耗大量时间和精力,还容易产生错误修改。
基于此,本发明提出了一种负载均衡方法,基于配置管理数据库不仅可以实现动态负载均衡,还可以在配置管理数据库中实现对均衡策略配置文件的动态修改,从而减少对配置文件修改时的人力资源,降低运维成本。
具体地,参照图2,图2为本发明负载均衡方法第一实施例的流程示意图,在本发明负载均衡方法的第一实施例中,所述负载均衡方法包括:
步骤S10,对访问各个服务器的请求指令进行拦截,并提取所述请求指令的域名信息;
在本实施例中,不是对访问Nginx服务器的外部请求指令直接进行转发,负载到后端服务器上实现负载均衡,而是基于配置管理数据库与Nginx服务器进行交互,从而确定负载策略并将外部请求指令转发到后端服务器上,实现动态的负载均衡。在本实施例中,配置管理数据库以Redis为例进行说明,具体地,参照图3,图3为本实施例中,基于Redis实现Nginx动态负载均衡的流程示意图,首先,对访问Nginx服务器的外部请求指令进行拦截,并从拦截的请求指令中提取请求指令的域名信息。
步骤S20,根据所述域名信息从预设的配置管理数据库中获取目标路由规则,对所述目标路由规则进行解析,得到所述目标路由规则的路由信息,其中,所述路由信息包括服务器列表;
在提取请求指令的域名信息后,根据该域名信息从Redis中获取对应的路由规则,并根据路由规则对拦截的请求指令进行转发,将拦截的请求指令负载到后端服务器上,实现负载均衡。具体地,根据提取的域名信息从Redis中获取目标路由规则并进行解析,得到待转发的请求指令对应的路由信息,其中,该路由信息包括请求指令后端可以转发的服务器列表。OpenResty在Location标签中指定规则拦截所有请求连接,根据请求指令的域名从Redis中获取对应的路由规则。
进一步地,配置管理数据库中包含Nginx的负载策略配置信息,该负载策略的配置信息以键值对(key-value)的方式存储在配置管理数据库Redis中,其中,键值对包括键(key)即关键词信息,以及值(value)即关键词信息对应的具体值,在Redis中的键值对中,配置域名为负载策略的关键词即key值,负载策略的路由规则为value值,在value中指定上下文根和对应上下文根需要转发的后端服务器和负载策略。当配置策略较多时,以键值对的方式进行策略配置,可以简化配置信息,减少对配置策略的错误修改。
进一步地,步骤S20中,根据请求指令的域名信息,从配置管理数据库中获取目标落规则的步骤包括:
步骤S2001,从所述域名信息中提取关键词,并根据所述关键词从预设的配置管理数据库中的各个键值对中索引目标键值对;
步骤S2002,根据所述目标键值对获取目标路由规则。
在从配置管理数据库中获取请求指令对应的目标路由规则时,从域名信息中提取关键词,或者将域名作为关键词,利用关键词索引键值对,并根据索引到的目标键值对的value值确定请求指令对应的目标路由规则。
对目标路由规则进行解析,解析出负载策略的路由信息,具体地,对路由规则的解析通过Lua脚本完成,通过执行Lua脚本解析路由规则的信息,解析出的路由信息包括域名对应的路由、路由的上下文根和后端服务器列表。
步骤S30,从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器。
在完成对路由规则的解析后,根据路由的上下文根确定路由策略,通过路由策略在后端服务器列表中选择一个服务器作为目标服务器进行负载转发,实现对Nginx的负载均衡。选择目标服务器的路由策略,可以是随机数算法、哈希算法(包括一致性哈希算法)、轮询、加权轮询等,可以对不同的请求指令设置不同的算法做为路由策略。
进一步地,参照步骤S301-S302:
步骤S301,对所述目标路由规则进行缓存,并检测所述目标路由规则的缓存时长是否小于预设时长;
步骤S302,若所述缓存时长小于预设时长,当拦截到与所述请求指令的请求参数相同的请求指令时,返回并执行所述对所述目标路由规则进行解析,得到所述目标路由规则的路由信息的步骤,其中,所述请求参数包括域名信息。
将请求指令转发至后端服务器之后,对请求指令对应的目标路由规则进行缓存,并检测缓存时长是否小于预设时长,若缓存时长小于预设时长,当再次拦截到域名、IP地址等请求参数相同的请求指令时,可以直接调用的缓存的路由规则,实现负载均衡,当路由规则的缓存时长大于或等于预设时长后,则对缓存的路由规则进行失效处理,以获得更好的性能且能保证对路由规则的动态修改。
在本实施例中,OpenResty读取Redis中的路由规则,并利用Lua LRU cache缓存从Redis读取且已经访问过的路由规则,设置缓存的路由规则的失效时长,该失效时长以1分钟为例,在1分钟内拦截到请求参数相同的请求指令时,直接调用缓存的路由规则进行解析,实现对负载的转发,1分钟之后,缓存数据失效,当拦截到请求参数相同的请求指令时,需要重新从Redis中获取路由规则,对拦截的请求指令进行负载转发。通过与Redis动态交互的方式,能够获得更好的负载性能且能保证路由规则的动态修改。
在本实施例中,通过对访问各个服务器的请求指令进行拦截,并提取所述请求指令的域名信息;根据所述域名信息从预设的配置管理数据库中获取目标路由规则,对所述目标路由规则进行解析,得到所述目标路由规则的路由信息,其中,所述路由信息包括服务器列表;从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器。通过配置管理数据库对负载均衡策略进行管理,当拦截到请求指令时,从配置管理数据库中匹配路由规则进行负载转发,以交互的方式实现负载均衡功能。同时,通过交互方式实现负载转发可以实现在配置管理数据库中对配置策略的动态修改,以实现动态负载均衡功能,减少配置策略修改所需的人力资源,从而大大降低了运维的成本。
进一步地,在本发明上述实施例的基础上,提出了本发明方法的第二实施例。本实施例是对第一实施例中步骤S30的细化,具体包括:
步骤S3001,确定所述请求指令的请求类型,根据所述请求类型从预设的负载均衡策略中选取目标均衡策略;
步骤S3002,利用所述目标均衡策略从所述服务器列表中选择目标服务器。
基于上述实施例,本实施例是对选择转发拦截的请求指令的后端服务器的细化,在本实施例中,对不同类型的请求指令设置不同的均衡策略,利用请求指令对应的均衡策略计算选择对应的服务器。具体地,根据拦截的请求指令中的域名、IP地址等请求参数,确定请求指令的请求类型,该请求类型包括热点请求和非热点请求,对于不同类型的请求指令,从预设的负载均衡策略中选取一个作为目标均衡策略,利用该目标均衡策略选择转发请求指令的目标服务器。可知地,在实际应用时,可以根据不同的标准将请求指令划分为更多的请求类型,在此不作具体限定。
进一步地,若请求指令的请求类型为热点请求,则选取随机算法作为目标均衡策略,利用随机算法从服务器列表中选取目标服务器的步骤包括:
步骤A1,获取所述服务器列表中各服务器的编号信息,并利用所述随机均衡策略生成随机数;
步骤A2,利用所述随机数对所述编号信息进行索引,确定目标服务器。
首先获取服务器列表中各服务器的编号信息,即确定服务器的数量,以5台服务器为例,服务器编号信息如S={S0,S1,S2,S3,S4},其中,S表示服务器列表,该列表中有S0至S4五台服务器,将0至4作为对应的服务器的索引下标,并将利用随机算法产生一个随机数,利用该随机数作为索引下标,索引服务器列表中的服务器。具体地,对随时算法产生的随机数进行取模计算,将得到一个不大于5的整数,将该整数作为服务器的下标索引值进行索引,例如,取模计算后得到一个整数2,则以2为下标索引值,得到编号为S2的服务器作为目标服务器,并将请求指令转发至该目标服务器中。
根据随机算法,将请求指令随机分配到后端服务器中,请求指令的均匀请求依赖于随机算法,实现方式较为简单,当相同的请求指令较多时,根据随机产生的随机数可以实现对请求指令的均匀分配,因此,适用于热点请求。
进一步地,若请求指令的请求类型为非热点请求,则选取哈希算法作为目标均衡策略,利用哈希算法从服务器列表中选取目标服务器的步骤包括:
步骤B1,根据所述请求指令的域名信息确定所述请求指令的地址信息,并获取所述服务器列表中各服务器的编号信息;
步骤B2,利用所述哈希均衡策略计算所述地址信息的哈希值,并根据所述服务器列表中的服务器数量对所述哈希值进行取模计算,得到所述服务器列表的下标索引值;
步骤B3,利用所述下标索引值索引所述服务器列表中各所述服务器的编号信息,确定目标服务器。
对于非热点请求,请求指令数量不如热点请求多,通过IP地址等信息计算哈希(hash)值,然后对服务器的数量取模,相同的请求指令会被转发到同一个后端服务器中,hash算法适合维护长连接,并能够提高请求指令的命中率,适用于非热点请求。具体地,以上述服务器列表S为例,根据请求指令的域名信息确定其地址信息,该地址信息包括IP地址和/或URL(Uniform Resource Locator,统一资源定位器)网络地址等,利用hash算法计算请求指令的IP地址或网络地址的hash值,根据服务器列表中的服务器数量对hash值进行取模,得到服务器列表的下标索引值,利用该下标索引值在服务器列表中索引目标服务器,并将请求指令转发至目标服务器中,实现对请求指令的负载均衡。
在本实施例中,通过对不同类型的请求指令设置不同的均衡策略,利用不同的均衡策略选择目标服务器,在实现负载均衡的基础上,可以进行负载策略的定制化,提高负载均衡的灵活性,并能大幅度的减少运维成本和时间。
此外,参照图4,本发明实施例还提出一种负载均衡装置,所述负载均衡装置包括:
请求拦截模块10,用于对访问各个服务器的请求指令进行拦截,并提取所述请求指令的域名信息;
规则解析模块20,用于根据所述域名信息从配置管理数据库中预设的路由策略配置信息中获取目标路由规则,对所述目标路由规则进行解析,得到所述目标路由规则的路由信息,其中,所述路由信息包括服务器列表;
负载均衡模块30,用于从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器。
可选地,所述规则解析模块20,还用于:
从所述域名信息中提取关键词,并根据所述关键词从预设的配置管理数据库中的各个键值对中索引目标键值对;
根据所述目标键值对获取目标路由规则。
可选地,所述负载均衡模块30,还用于:
确定所述请求指令的请求类型,根据所述请求类型从预设的负载均衡策略中选取目标均衡策略;
利用所述目标均衡策略从所述服务器列表中选择目标服务器。
可选地,所述负载均衡模块30,还用于:
获取所述服务器列表中各服务器的编号信息,并利用所述随机均衡策略生成随机数;
利用所述随机数对所述编号信息进行索引,确定目标服务器。
可选地,所述负载均衡模块30,还用于:
根据所述请求指令的域名信息确定所述请求指令的地址信息,并获取所述服务器列表中各服务器的编号信息;
利用所述哈希均衡策略计算所述地址信息的哈希值,并根据所述服务器列表中的服务器数量对所述哈希值进行取模计算,得到所述服务器列表的下标索引值;
利用所述下标索引值索引所述服务器列表中各所述服务器的编号信息,确定目标服务器。
可选地,所述负载均衡装置还包括缓存模块,用于:
对所述目标路由规则进行缓存,并检测所述目标路由规则的缓存时长是否小于预设时长;
若所述缓存时长小于预设时长,当拦截到与所述请求指令的请求参数相同的请求指令时,返回并执行所述对所述目标路由规则进行解析,得到所述目标路由规则的路由信息的步骤,其中,所述请求参数包括域名信息。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有负载均衡程序,所述负载均衡程序被处理器执行时实现上述实施例提供的负载均衡方法中的操作。
此外,本发明实施例还提出一种计算机程序产品,包括计算机程序,所述计算机被处理器执行时实现上述实施例提供的负载均衡方法中的操作。
本发明设备、计算机程序产品和计算机可读存储介质各实施例,均可参照本发明负载均衡方法各个实施例,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序;术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的负载均衡方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种负载均衡方法,其特征在于,所述负载均衡方法包括以下步骤:
对访问各个服务器的请求指令进行拦截,并提取所述请求指令的域名信息;
根据所述域名信息从预设的配置管理数据库中获取目标路由规则,对所述目标路由规则进行解析,得到所述目标路由规则的路由信息,其中,所述路由信息包括服务器列表;
从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器。
2.如权利要求1所述的负载均衡方法,其特征在于,所述配置管理数据库中设有键值对,所述键值对包括关键词信息,所述根据所述域名信息从预设的配置管理数据库中获取目标路由规则的步骤,包括:
从所述域名信息中提取关键词,并根据所述关键词从预设的配置管理数据库中的各个键值对中索引目标键值对;
根据所述目标键值对获取目标路由规则。
3.如权利要求1所述的负载均衡方法,其特征在于,所述从所述服务器列表中选择目标服务器的步骤,包括:
确定所述请求指令的请求类型,根据所述请求类型从预设的负载均衡策略中选取目标均衡策略;
利用所述目标均衡策略从所述服务器列表中选择目标服务器。
4.如权利要求3所述的负载均衡方法,其特征在于,所述请求类型包括热点请求,预设的负载均衡策略包括随机策略,当所述请求指令的请求类型为热点请求时,所述目标均衡策略为随机均衡策略,所述利用所述目标均衡策略从所述服务器列表中选择目标服务器的步骤,包括:
获取所述服务器列表中各服务器的编号信息,并利用所述随机均衡策略生成随机数;
利用所述随机数对所述编号信息进行索引,确定目标服务器。
5.如权利要求3所述的负载均衡方法,其特征在于,所述请求类型包括非热点请求,预设的负载均衡策略包括哈希均衡策略,当所述请求指令的请求类型为非热点请求时,所述目标均衡策略为哈希均衡策略,所述利用所述目标均衡策略从所述服务器列表中选择目标服务器的步骤,包括:
根据所述请求指令的域名信息确定所述请求指令的地址信息,并获取所述服务器列表中各服务器的编号信息;
利用所述哈希均衡策略计算所述地址信息的哈希值,并根据所述服务器列表中的服务器数量对所述哈希值进行取模计算,得到所述服务器列表的下标索引值;
利用所述下标索引值索引所述服务器列表中各所述服务器的编号信息,确定目标服务器。
6.如权利要求1所述的负载均衡方法,其特征在于,所述从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器的步骤之后,还包括:
对所述目标路由规则进行缓存,并检测所述目标路由规则的缓存时长是否小于预设时长;
若所述缓存时长小于预设时长,当拦截到与所述请求指令的请求参数相同的请求指令时,返回并执行所述对所述目标路由规则进行解析,得到所述目标路由规则的路由信息的步骤,其中,所述请求参数包括域名信息。
7.一种负载均衡装置,其特征在于,所述负载均衡装置包括:
请求拦截模块,用于对访问各个服务器的请求指令进行拦截,并提取所述请求指令的域名信息;
规则解析模块,用于根据所述域名信息从配置管理数据库中预设的路由策略配置信息中获取目标路由规则,对所述目标路由规则进行解析,得到所述目标路由规则的路由信息,其中,所述路由信息包括服务器列表;
负载均衡模块,用于从所述服务器列表中选择目标服务器,并将所述请求指令转发至所述目标服务器。
8.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的负载均衡程序,所述负载均衡程序被所述处理器执行时实现如权利要求1至6中任一项所述的负载均衡方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有负载均衡程序,所述负载均衡程序被处理器执行时实现如权利要求1至6中任一项所述的负载均衡方法的步骤。
10.一种计算程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的负载均衡方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111023588.9A CN113472901B (zh) | 2021-09-02 | 2021-09-02 | 负载均衡方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111023588.9A CN113472901B (zh) | 2021-09-02 | 2021-09-02 | 负载均衡方法、装置、设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113472901A true CN113472901A (zh) | 2021-10-01 |
CN113472901B CN113472901B (zh) | 2022-01-11 |
Family
ID=77867336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111023588.9A Active CN113472901B (zh) | 2021-09-02 | 2021-09-02 | 负载均衡方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113472901B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114465767A (zh) * | 2021-12-27 | 2022-05-10 | 天翼云科技有限公司 | 一种数据调度方法和设备 |
CN114866617A (zh) * | 2022-04-28 | 2022-08-05 | 济南浪潮数据技术有限公司 | 一种微服务请求处理方法、装置、设备及介质 |
CN115103016A (zh) * | 2022-06-21 | 2022-09-23 | 浙江浩瀚能源科技有限公司 | 基于c/s架构的路由调用的处理方法、装置、设备及介质 |
CN115914399A (zh) * | 2022-09-29 | 2023-04-04 | 京东科技信息技术有限公司 | 请求数据发送方法、装置、设备、介质和程序产品 |
CN117112123A (zh) * | 2023-02-13 | 2023-11-24 | 深圳市同行者科技有限公司 | 一种基于kubernetes的负载均衡方法和相关设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657248A (zh) * | 2016-11-01 | 2017-05-10 | 山东大学 | 一种基于Docker容器的网络负载均衡系统及其搭建方法、工作方法 |
CN107360162A (zh) * | 2017-07-12 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种网络应用防护方法和装置 |
CN107517243A (zh) * | 2016-06-16 | 2017-12-26 | 中兴通讯股份有限公司 | 请求调度方法及装置 |
CN108829459A (zh) * | 2018-05-31 | 2018-11-16 | 康键信息技术(深圳)有限公司 | 基于Nginx服务器的配置方法、装置、计算机设备和存储介质 |
CN109088764A (zh) * | 2018-08-15 | 2018-12-25 | 郑州悉知信息科技股份有限公司 | 访问请求处理方法及相关设备 |
US20200137151A1 (en) * | 2017-06-30 | 2020-04-30 | Huawei Technologies Co., Ltd. | Load balancing engine, client, distributed computing system, and load balancing method |
CN111225059A (zh) * | 2020-01-10 | 2020-06-02 | 中移(杭州)信息技术有限公司 | 网络请求资源调度方法、装置、电子设备及存储介质 |
CN111800458A (zh) * | 2020-05-22 | 2020-10-20 | 浙商银行股份有限公司 | 一种Kubernetes容器云平台的动态负载均衡方法及系统 |
CN112764948A (zh) * | 2021-01-22 | 2021-05-07 | 土巴兔集团股份有限公司 | 数据发送方法、数据发送装置、计算机设备及存储介质 |
CN112953984A (zh) * | 2019-12-10 | 2021-06-11 | 贵州白山云科技股份有限公司 | 数据处理方法、装置、介质及系统 |
-
2021
- 2021-09-02 CN CN202111023588.9A patent/CN113472901B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107517243A (zh) * | 2016-06-16 | 2017-12-26 | 中兴通讯股份有限公司 | 请求调度方法及装置 |
CN106657248A (zh) * | 2016-11-01 | 2017-05-10 | 山东大学 | 一种基于Docker容器的网络负载均衡系统及其搭建方法、工作方法 |
US20200137151A1 (en) * | 2017-06-30 | 2020-04-30 | Huawei Technologies Co., Ltd. | Load balancing engine, client, distributed computing system, and load balancing method |
CN107360162A (zh) * | 2017-07-12 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种网络应用防护方法和装置 |
CN108829459A (zh) * | 2018-05-31 | 2018-11-16 | 康键信息技术(深圳)有限公司 | 基于Nginx服务器的配置方法、装置、计算机设备和存储介质 |
CN109088764A (zh) * | 2018-08-15 | 2018-12-25 | 郑州悉知信息科技股份有限公司 | 访问请求处理方法及相关设备 |
CN112953984A (zh) * | 2019-12-10 | 2021-06-11 | 贵州白山云科技股份有限公司 | 数据处理方法、装置、介质及系统 |
CN111225059A (zh) * | 2020-01-10 | 2020-06-02 | 中移(杭州)信息技术有限公司 | 网络请求资源调度方法、装置、电子设备及存储介质 |
CN111800458A (zh) * | 2020-05-22 | 2020-10-20 | 浙商银行股份有限公司 | 一种Kubernetes容器云平台的动态负载均衡方法及系统 |
CN112764948A (zh) * | 2021-01-22 | 2021-05-07 | 土巴兔集团股份有限公司 | 数据发送方法、数据发送装置、计算机设备及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114465767A (zh) * | 2021-12-27 | 2022-05-10 | 天翼云科技有限公司 | 一种数据调度方法和设备 |
CN114866617A (zh) * | 2022-04-28 | 2022-08-05 | 济南浪潮数据技术有限公司 | 一种微服务请求处理方法、装置、设备及介质 |
CN115103016A (zh) * | 2022-06-21 | 2022-09-23 | 浙江浩瀚能源科技有限公司 | 基于c/s架构的路由调用的处理方法、装置、设备及介质 |
CN115103016B (zh) * | 2022-06-21 | 2023-11-03 | 浙江浩瀚能源科技有限公司 | 基于c/s架构的路由调用的处理方法、装置、设备及介质 |
CN115914399A (zh) * | 2022-09-29 | 2023-04-04 | 京东科技信息技术有限公司 | 请求数据发送方法、装置、设备、介质和程序产品 |
CN117112123A (zh) * | 2023-02-13 | 2023-11-24 | 深圳市同行者科技有限公司 | 一种基于kubernetes的负载均衡方法和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113472901B (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113472901B (zh) | 负载均衡方法、装置、设备、存储介质及程序产品 | |
CN103617165B (zh) | 一种加载图片的方法、装置及终端 | |
WO2020199751A1 (zh) | 用于加载页面图片的方法、装置和电子设备 | |
US20160241589A1 (en) | Method and apparatus for identifying malicious website | |
US8935798B1 (en) | Automatically enabling private browsing of a web page, and applications thereof | |
JP6328233B2 (ja) | ウェブ・ページのロードを最適化するためのコンピュータ・プログラム製品、システム、および方法 | |
US9754113B2 (en) | Method, apparatus, terminal and media for detecting document object model-based cross-site scripting attack vulnerability | |
CN107329985B (zh) | 一种页面的收藏方法、装置和移动终端 | |
CN109829287A (zh) | Api接口权限访问方法、设备、存储介质及装置 | |
CN113420051B (zh) | 一种数据查询方法、装置、电子设备和存储介质 | |
CN109948090B (zh) | 网页加载方法及装置 | |
CN110020293B (zh) | 多媒体数据展示方法、装置及存储介质 | |
CN113407662B (zh) | 敏感词识别方法、系统及计算机可读存储介质 | |
CN113010224B (zh) | 前端微服务化方法、装置、计算机设备和存储介质 | |
CN108256014A (zh) | 页面展示方法及装置 | |
CN112612546A (zh) | 页面加载方法、装置、电子设备和存储介质 | |
CN110929128A (zh) | 一种数据爬取方法、装置、设备和介质 | |
CN109936504A (zh) | 图片展示的方法、装置、服务器设备及存储介质 | |
WO2018137528A1 (zh) | 资源访问方法及装置 | |
US9798746B2 (en) | Dynamic map template discovery and map creation | |
KR101681851B1 (ko) | 웹 브라우저 동작 방법 및 시스템 | |
CN107395737A (zh) | 访问网络资源的方法、装置、系统及计算机可读存储介质 | |
CN115061939B (zh) | 数据集安全测试方法、装置及存储介质 | |
CN110213597A (zh) | 一种通过浏览器进入直播房间的方法和装置 | |
CN103532988A (zh) | 页面访问控制方法和相关装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |