CN110011928A - 流量均衡负载方法、装置、计算机设备和存储介质 - Google Patents
流量均衡负载方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110011928A CN110011928A CN201910319068.9A CN201910319068A CN110011928A CN 110011928 A CN110011928 A CN 110011928A CN 201910319068 A CN201910319068 A CN 201910319068A CN 110011928 A CN110011928 A CN 110011928A
- Authority
- CN
- China
- Prior art keywords
- strategy
- network request
- load
- strategies
- request
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出基于数据处理的流量均衡负载方法、装置、计算机设备和存储介质,其中方法包括:获取用户通过目标系统发起的网络请求,并发出调用指令;依据所述调用指令调用预设的策略集,所述策略集包括多个负载策略;将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略;从所述目标负载策略中得到与所述网络请求对应的目标服务地址;将所述网络请求转发到所述目标服务地址对应的服务器,这样使得不同的网络请求均可以转发到适合的服务器处理,提高系统的稳定性,且当需要修改负载策略时,直接在线修改策略,实时生效。
Description
技术领域
本发明涉及到数据处理的技术领域,特别是涉及到一种流量均衡负载方法、装置、计算机设备和存储介质。
背景技术
随着业务的发展,用户对各个业务系统的使用量也逐渐增长,当网络请求不断地增加,系统的负荷量变大,其响应延时也会随之不断增加,甚至会产生的数据拥塞、流量失衡等问题,所以让系统稳定性变得更加重要。
而传统的方式通过负载均衡设备将流量负载到多个服务器,来实现简单的系统高可用,但是这样系统的稳定性并不高,一旦出现故障,则会影响所有用户使用,另外现有使用负载策略来进行均衡负载的方法中,当需要修改负载策略时,其过程较复杂,实时性也差。
发明内容
本发明的主要目的为提供一种流量均衡负载方法、装置、计算机设备和存储介质,旨在解决现有负载均衡流量时系统稳定性较差的技术问题。
基于上述发明目的,本发明提出一种流量均衡负载方法,包括:
获取用户通过目标系统发起的网络请求;
依据所述网络请求生成调用指令;
依据所述调用指令调用预设的策略集,所述策略集包括多个负载策略;
将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略;
从所述目标负载策略中得到与所述网络请求对应的目标服务地址;
将所述网络请求转发到所述目标服务地址对应的服务器。
进一步地,所述依据所述调用指令调用预设的策略集的步骤,包括:
依据所述调用指令将预设数据库中的所述策略集加载至本地内存,以调用所述策略集。
进一步地,所述策略集中包括对应指定业务系统的私有负载策略以及对应所有业务系统的公有负载策略,所述将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略的步骤,包括:
将所述私有负载策略与所述网络请求进行匹配;
若匹配不到所述目标负载策略,则将所述公有负载策略与所述网络请求进行匹配,以找到所述目标负载策略。
进一步地,所述负载策略包括请求属性以及预设条件,所述将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略的步骤,包括:
依据每个所述负载策略的请求属性从所述网络请求中获取对应所述负载策略的属性值;
依次判断所述属性值是否满足对应的所述负载策略的预设条件,直到找到所述属性值满足所述预设条件的所述目标负载策略。
进一步地,所述目标负载策略中还包括有路由数组,所述路由数组中包括多个服务地址,所述从所述目标负载策略中得到与所述网络请求对应的目标服务地址的步骤,包括:
获取所述用户的手机号码以及所述目标系统的系统ID;
将所述手机号码以及系统ID通过hash函数运算得到第一数值;
获取所述路由数组中所有服务地址的数量;
将所述第一数值以及所述数量通过预设算式计算得到所述目标服务地址。
进一步地,所述将所述第一数值以及所述数量通过预设算式计算得到所述目标服务地址的步骤,包括:
利用以下预设算式计算得到所述目标服务地址:
add=g[n%l]
其中,add为所述目标服务地址,n为所述第一数值,l为所述路由数组中服务地址的数量,g为所述路由数组,g[n%l]为取所述路由数组中第n%l个服务地址。
进一步地,所述从所述目标负载策略中得到与所述网络请求对应的目标服务地址的步骤,包括:
通过随机算法从所述目标负载策略的路由数组中选择出所述目标服务地址。
本发明还提供一种流量均衡负载装置,包括:
获取请求单元,用于获取用户通过目标系统发起的网络请求;
生成调用单元,用于依据所述网络请求生成调用指令;
调用策略单元,用于依据所述调用指令调用预设的策略集,所述策略集包括多个负载策略;
匹配策略单元,用于将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略;
得到地址单元,用于从所述目标负载策略中得到与所述网络请求对应的目标服务地址;
转发请求单元,用于将所述网络请求转发到所述目标服务地址对应的服务器。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明的有益效果为:将网络请求转发到负载组件并通过负载策略转发到对应的服务器,以使得不同的网络请求均可以转发到适合的服务器处理,提高系统的稳定性,且当需要修改负载策略时,直接在线修改策略,实时生效。
附图说明
图1为本发明一实施例中流量均衡负载方法的步骤示意图;
图2为本发明一实施例中流量均衡负载装置的结构示意框图;
图3为本发明一实施例的计算机设备的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本实施例中的流量均衡负载方法,包括:
步骤S1:获取用户通过目标系统发起的网络请求;
步骤S2:依据所述网络请求生成调用指令;
步骤S3:依据所述调用指令调用预设的策略集,所述策略集包括多个负载策略;
步骤S4:将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略;
步骤S5:从所述目标负载策略中得到与所述网络请求对应的目标服务地址;
步骤S6:将所述网络请求转发到所述目标服务地址对应的服务器。
本实施例中,上述方法在网络环境中实现,为了使网络出现故障时,用户之间不会干扰,系统工作不会被打断,在不同的区域搭建(例如分配服务器、部署应用)一套新网络环境,且保证新网络环境以及旧网络环境使用的基础设施(如主机、网络、存储等)物理隔离,例如深圳新机房与上海旧机房物理隔离,但两者共用一个系统,当其中一个出现障碍,另一个还能使用,两套同时使用,进一步分担负载压力。
如上述步骤S1以及步骤S2所述,已知的是,一个企业可能有多个业务系统,每个业务系统作用不一样,而处理每个业务系统的请求则得分配到适合的服务器,使得系统负载均衡。上述目标系统即为本实施例中的任意一种业务系统,当用户通过目标系统发起网络请求,负载系统接收到该网络请求之后,将该网络请求转发到负载系统中的负载组件,上述负载组件为用于暂存网络请求,并将网络请求分配转发至适合的服务器的程序。当将网络请求转发到负载组件时,负载组件开始启动进行工作,这时负载组件会根据网络请求触发生成调用指令,该调用指令用于调用预设的策略集。
如上述步骤S3以及步骤S4所述,负载组件依据调用指令调用策略集,如从缓存中获取或者从预设数据库中获取,上述策略集包含多个负载策略,这些负载策略用于判断将网络请求分配转发到哪个服务器进行处理,由于不同的业务系统,对应配置的负载策略也不一样,故而需要找到与网络请求对应的目标负载策略,本实施例中,通过将负载策略与网络请求按预设匹配规则进行匹配,从而在策略集中找到与网络请求对应的目标负载策略,上述匹配规则可以为上述网络请求满足负载策略中预设的条件时即认为两者匹配。其中,负载策略包括策略名称name、关键字key、请求属性type(请求头hd、参数pm、来源org中任一个)、预设条件cn、路由数组、策略类型等内容,上述路由数组是多个服务地址的集合,即路由数组包含有多个服务地址,每个服务地址对应一组处理服务器,这些负载策略可以事先通过开发人员使用命令行进行配置,或通过用户使用在线编辑页面进行配置,配置之后将其存储至数据库中,当需要修改负载策略时,从数据库中获取负载策略并修改,然后再将修改后的负载策略存至数据库即可。
如上述步骤S5以及步骤S6所述,找到对应的目标负载策略之后,即可以得到目标负载策略中的路由数组,由于路由数组中有多个服务地址,故而需要从中选出与网络请求对应的目标服务地址,已知的是,网络请求包括请求行、请求头以及请求体,请求头包括多项属性,其格式为“属性名:属性值”,这些属性当中包括发起请求的业务系统的客户信息(ID)或对应的客户端,这些均可分别对应不同的目标服务地址。对于不同的业务系统,选出目标服务地址的方法不一样,例如通过预设规则或者预设算法来选择,当找到目标服务地址后,即可将网络请求转发到目标服务地址对应的服务器,由该服务器处理上述网络请求。通过该方法将不同业务系统的网络请求分配到适合的服务器处理,均衡合理,一方面可以使系统运行更快速稳定,一方面能实时修改负载策略,即时使用,简单方便。
在一个实施例中,为了保证负载组件的高可用性,采用集群的方式部署多个负载组件,即设置由多个负载组件组成的负载集群,当获取到网络请求后,即可通过服务发现程序随机地将其转发到负载集群中的任一个负载组件。上述服务发现程序为预设的用于从负载集群中随机选择负载组件的程序。当服务发现程序选出负载集群中其中一个负载组件之后,将上述网络请求转发到该负载组件,以便进一步分配转发。
在另一个例子,还可以根据负载组件当前的流量(工作量)大小来进行分配,首先获得各个负载组件的当前流量,并进行对比,以找出流量最小的负载组件,然后网络请求转发到该负载组件。
在一个实施例中,上述步骤S3,包括:
步骤S31:依据所述调用指令将预设数据库中的所述策略集加载至本地内存,以调用所述策略集。
本实施例中,为了提高系统运行速度,可将策略集先从数据库缓存到redis(Redis是一个开源的使用ANSIC语言编写的Key-Value存储系统),已知上述策略集存储在预设数据库中,负载组件启动的同时依据调用指令上述策略集加载到本地内存中,以便后续工作时调用,提高工作效率。
在一个实施例中,所述策略集中包括对应指定业务系统的私有负载策略以及对应所有业务系统的公有负载策略,上述步骤S4,包括:
步骤S41:将所述私有负载策略与所述网络请求进行匹配;
步骤S42:若匹配不到所述目标负载策略,则将所述公有负载策略与所述网络请求进行匹配,以找到所述目标负载策略。
本实施例中,上述负载策略的策略类型包含两类,分别为私有负载策略以及公有负载策略,私有负载策略对应指定的业务系统,即是针对某个业务系统而配置的,例如验证码系统,则只能使用对应验证码系统的负载策略;公有负载策略对应大部分的业务系统。匹配的时候,先将私有负载策略进行匹配,若在私有负载策略中找到目标负载策略,表明该业务系统对应设置有针对性的负载策略,则可以优先使用该负载策略,即通过该负载策略将网络请求转发至对应的服务器,若匹配不到私有负载策略,则将公有策略与网络请求进行匹配,从中找到目标负载策略,然后通过该负载策略将网络请求转发至对应的服务器。
在一个实施例中,所述负载策略包括策略名称、关键词、请求属性、预设条件、路由数组以及策略类型,上述步骤S4,包括:
步骤S43:依据每个所述负载策略的请求属性从所述网络请求中获取对应所述负载策略的属性值;
步骤S44:依次判断所述属性值是否满足对应的所述负载策略的预设条件,直到找到所述属性值满足所述预设条件的所述目标负载策略。
本实施例中,上述负载策略包括策略名称name、关键字key、请求属性type(请求头hd、参数pm、来源org中任一个)、预设条件(cn条件)、路由数组、策略类型(是否全局st(0\1),全局即为公有、非全局即为私有)等内容,每个负载策略配置的请求属性以及预设条件可能都不一样,配置时从请求属性的请求头hd、参数pm、来源org中选择任一个配置,然后依据该请求属性获取网络请求对应该请求属性的属性值,判断属性值是否满足该负载策略的预设条件,将每一个负载策略依次按照上述方法判断,直至找到满足预设条件的目标负载策略。
举例地,第一个负载策略的请求属性配置的为参数pm,在匹配的时候,获取网络请求的参数pm值(即属性值),将该参数pm值按照预设条件中的预设算式计算,以此查看该参数pm值是否满足预设条件,例如,预设条件是若参数pm值对1000求余等于0,则网络请求满足该预设条件,这时第一个负载策略即默认为目标负载策略;若参数pm值对1000求余不等于0,即不满足预设条件,则需要将策略集中的第二个负载策略再次进行判断,第二个负载策略的请求属性配置的为请求头hd,则这时获取网络请求的请求头的hd值(属性值),第二个负载策略的预设条件是若hd值对10求余等于0,则网络请求满足预设条件,这时第二个负载策略即默认为目标负载策略,否则继续判断第三个负载策略,直至找到目标负载策略。
例如可如下配置一个负载策略:名称p1,关键字为ip,请求属性为参数pm,预设条件为参数的值对1000求余等于0,路由数组包括两个服务地址,分别是100.78.98.111以及100.78.98.11,策略类型为私有负载策略,则表达如下:{"name":"p1","key":"ip","type":"pm","cn":"$var%1000==0","tar":"100.78.98.111|||100.78.98.112||||4344|||433","st":"1"}
在一个实施例中,上述步骤S5,包括:
步骤S51:获取所述用户的手机号码以及所述目标系统的系统ID;
步骤S52:将所述手机号码以及系统ID通过hash函数运算得到第一数值;
步骤S53:获取所述路由数组中所有服务地址的数量;
步骤S54:将所述第一数值以及所述数量通过预设算式计算得到所述目标服务地址。
本实施例中,已知目标负载策略中还包括路由数组,从路由数组中选择出目标服务地址的过程可如下:先获取用户的手机号码,以及目标系统的系统ID,由于网络请求中包括有用户信息以及目标系统信息,则可依据网络请求获得对应的系统ID,以及依据网络请求查找对应的用户以获取其手机号码。然后将手机号码以及系统ID通过hash函数运算得到第一数值,上述hash函数即是散列函数,又称“哈希”函数。本实施例中,该hash函数的表达式为n=hash(phone+id),将手机号码以及系统ID拼接通过hash函数运算得到0~31间的第一数值n,然后获取目标负载策略的路由数组中所有服务地址的数量。
上述步骤S54中,预设算式可以为:add=g[n%l],其中,add为所述目标服务地址,n为所述第一数值,l为所述路由数组中服务地址的数量,g为所述路由数组,g[n%l]为取所述路由数组中第n%l个服务地址,具体而言,首先求得第一数值除以数量的余数m,即m=n%l,而g[m]则为路由数组中第m个服务地址,例如,当求得m为5时,即上述目标服务地址为路由数组中的第五个服务地址。
在一个实施例中,上述步骤S5,包括:
步骤S50:通过随机算法从所述目标负载策略的路由数组中选择出所述目标服务地址。
由于路由数组包含有多个服务地址,每个服务地址对应一组处理服务器,当要将网络请求转发到服务器时,则需要从多个服务地址中选择该服务器的服务地址,本实施例中,通过随机算法进行选择,随机选择多个服务地址中的一个,上述随机算法可以为已知的数值概率算法、蒙特卡洛算法MonteCarlo、舍伍德算法Sherwood等算法中的任一种,计算过程为现有技术,这里不再赘述,通过随机算法计算得到该路由数组中的一个服务地址,该服务地址即为上述目标服务地址。
参照图2,本实施例中流量均衡负载装置,包括:
获取请求单元100,用于获取用户通过目标系统发起的网络请求;
生成调用单元200,用于依据所述网络请求生成调用指令;
调用策略单元300,用于依据所述调用指令调用预设的策略集,所述策略集包括多个负载策略;
匹配策略单元400,用于将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略;
得到地址单元500,用于从所述目标负载策略中得到与所述网络请求对应的目标服务地址;
转发请求单元600,用于将所述网络请求转发到所述目标服务地址对应的服务器。
本实施例中,上述装置应用在网络环境中,为了使网络出现故障时,用户之间不会干扰,系统工作不会被打断,在不同的区域搭建(例如分配服务器、部署应用)一套新网络环境,且保证新网络环境以及旧网络环境使用的基础设施(如主机、网络、存储等)物理隔离,例如深圳新机房与上海旧机房物理隔离,但两者共用一个系统,当其中一个出现障碍,另一个还能使用,两套同时使用,进一步分担负载压力。
如上述获取请求单元100以及生成调用单元200所述,已知的是,一个企业可能有多个业务系统,每个业务系统作用不一样,而处理每个业务系统的请求则得分配到适合的服务器,使得系统负载均衡。上述目标系统即为本实施例中的任意一种业务系统,当用户通过目标系统发起网络请求,负载系统中的获取请求单元100获取到该网络请求之后,将该网络请求转发到负载系统中的负载组件,上述负载组件为用于暂存网络请求,并将网络请求分配转发至适合的服务器的程序。当将网络请求转发到负载组件时,负载组件开始启动进行工作,这时负载组件会根据网络请求触发生成调用指令,该调用指令用于调用预设的策略集。
如上述调用策略单元300以及匹配策略单元400所述,负载组件的调用策略单元300依据调用指令调用策略集,如从缓存中获取或者从预设数据库中获取,上述策略集包含多个负载策略,这些负载策略用于判断将网络请求分配转发到哪个服务器进行处理,由于不同的业务系统,对应配置的负载策略也不一样,故而需要找到与网络请求对应的目标负载策略,本实施例中,匹配策略单元400通过将负载策略与网络请求按预设匹配规则进行匹配,从而在策略集中找到与网络请求对应的目标负载策略,上述匹配规则可以为上述网络请求满意负载策略中预设的条件,即可以认为两者匹配。其中,负载策略包括策略名称name、关键字key、请求属性type(请求头hd、参数pm、来源org中任一个)、预设条件cn、路由数组、策略类型等内容,上述路由数组是多个服务地址的集合,即路由数组包含有多个服务地址,每个服务地址对应一组处理服务器,这些负载策略可以事先通过开发人员使用命令行进行配置,或通过用户使用在线编辑页面进行配置,配置然后之后将其存储至数据库中,当需要修改负载策略时,从数据库中获取负载策略并修改,然后再将修改后的负载策略存至数据库即可。
如上述得到地址单元500以及转发请求单元600所述,找到对应的目标负载策略之后,即可以得到目标负载策略中的路由数组,由于路由数组中有多个服务地址,故而需要从中选出与网络请求对应的目标服务地址,已知的是,网络请求包括请求行、请求头以及请求体,请求头包括多项属性,其格式为“属性名:属性值”,这些属性当中包括发起请求的业务系统的客户信息(ID)或对应的客户端,这些均可分别对应不同的目标服务地址。对于不同的业务系统,选出目标服务地址的方法不一样,例如通过预设规则或者预设算法来选择,当找到目标服务地址后,转发请求单元600可将网络请求转发到目标服务地址对应的服务器,由该服务器处理上述网络请求。通过将不同业务系统的网络请求分配到适合的服务器处理,均衡合理,一方面可以使系统运行更快速稳定,一方面能实时修改负载策略,即时使用,简单方便。
在一个实施例中,为了保证负载组件的高可用性,采用集群的方式部署多个负载组件,即设置由多个负载组件组成的负载集群,当获取到网络请求后,即可通过服务发现程序随机地将其转发到负载集群中的任一个负载组件。上述服务发现程序为预设的用于从负载集群中随机选择负载组件的程序。当服务发现程序选出负载集群中其中一个负载组件之后,将上述网络请求转发到该负载组件,以便进一步分配转发。
在另一个例子,还可以根据负载组件当前的流量(工作量)大小来进行分配,首先获得各个负载组件的当前流量,并进行对比,以找出流量最小的负载组件,然后网络请求转发到该负载组件。
在一个实施例中,上述调用策略单元300,包括:
加载策略子单元,用于依据所述调用指令将预设数据库中的所述策略集加载至本地内存,以调用所述策略集。
本实施例中,为了提高系统运行速度,可将策略集先从数据库缓存到redis(Redis是一个开源的使用ANSIC语言编写的Key-Value存储系统),已知上述策略集存储在预设数据库中,负载组件启动的同时依据调用指令将上述策略集加载到本地内存中,以便后续工作时调用,提高工作效率。
在一个实施例中,所述策略集中包括对应指定业务系统的私有负载策略以及对应所有业务系统的公有负载策略,上述匹配策略单元400,包括:
第一匹配子单元,用于将所述私有负载策略与所述网络请求进行匹配;
第二匹配子单元,用于匹配不到所述目标负载策略时,将所述公有负载策略与所述网络请求进行匹配,以找到所述目标负载策略。
本实施例中,上述负载策略的策略类型包含两类,分别为私有负载策略以及公有负载策略,私有负载策略对应指定的业务系统,即是针对某个业务系统而配置的,例如验证码系统,则只能使用对应验证码系统的负载策略;公有负载策略对应大部分的业务系统。匹配的时候,先将私有负载策略进行匹配,若在私有负载策略中找到目标负载策略,表明该业务系统对应设置有针对性的负载策略,则可以优先使用该负载策略,即通过该负载策略将网络请求转发至对应的服务器,若匹配不到私有负载策略,则将公有策略与网络请求进行匹配,从中找到目标负载策略,然后通过该负载策略将网络请求转发至对应的服务器。
在一个实施例中,所述负载策略包括策略名称、关键词、请求属性、预设条件、路由数组以及策略类型,上述匹配策略单元400,包括:
获取属性子单元,用于依据每个所述负载策略的请求属性从所述网络请求中获取对应所述负载策略的属性值;
判断条件子单元,用于依次判断所述属性值是否满足对应的所述负载策略的预设条件,直到找到所述属性值满足所述预设条件的所述目标负载策略。
本实施例中,上述负载策略包括策略名称name、关键字key、请求属性type(请求头hd、参数pm、来源org中任一个)、预设条件(cn条件)、路由数组、策略类型(是否全局st(0\1),全局即为公有、非全局即为私有)等内容,每个负载策略配置的请求属性以及预设条件可能都不一样,配置时从请求属性的请求头hd、参数pm、来源org中选择任一个配置,然后依据该请求属性获取网络请求对应该请求属性的属性值,判断属性值是否满足该负载策略的预设条件,将每一个负载策略依次按照上述方法判断,直至找到满足预设条件的目标负载策略。
举例地,第一个负载策略的请求属性配置的为参数pm,在匹配的时候,获取网络请求的参数pm值(即属性值),将该参数pm值按照预设条件中的预设算式计算,以此查看该参数pm值是否满足预设条件,例如,预设条件是若参数pm值对1000求余等于0,则网络请求满足该预设条件,这时第一个负载策略即默认为目标负载策略;若参数pm值对1000求余不等于0,即不满足预设条件,则需要将策略集中的第二个负载策略再次进行判断,第二个负载策略的请求属性配置的为请求头hd,则这时获取网络请求的请求头的hd值(属性值),第二个负载策略的预设条件是若hd值对10求余等于0,则网络请求满足预设条件,这时第二个负载策略即默认为目标负载策略,否则继续判断第三个负载策略,直至找到目标负载策略。
例如可如下配置一个负载策略:名称p1,关键字为ip,请求属性为参数,预设条件为参数的值对1000求余等于0,路由数组包括两个服务地址,分别是100.78.98.111以及100.78.98.11,策略类型为私有负载策略,则表达如下:{"name":"p1","key":"ip","type":"pm","cn":"$var%1000==0","tar":"100.78.98.111|||100.78.98.112||||4344|||433","st":"1"}
在一个实施例中,上述得到地址单元500,包括:
获取号码子单元,用于获取所述用户的手机号码以及所述目标系统的系统ID;
运算数值子单元,用于将所述手机号码以及系统ID通过hash函数运算得到第一数值;
获取数量子单元,用于获取所述路由数组中所有服务地址的数量;
计算地址子单元,用于将所述第一数值以及所述数量通过预设算式计算得到所述目标服务地址。
本实施例中,已知目标负载策略中还包括路由数组,从路由数组中选择出目标服务地址的过程可如下:先获取用户的手机号码,以及目标系统的系统ID,由于网络请求中包括有用户信息以及目标系统信息,则可依据网络请求获得对应的系统ID,以及依据网络请求查找对应的用户以获取其手机号码。然后将手机号码以及系统ID通过hash函数运算得到第一数值,上述hash函数即是散列函数,又称“哈希”函数。本实施例中,该hash函数的表达式为n=hash(phone+id),将手机号码以及系统ID拼接通过hash函数运算得到0~31间的第一数值n,然后获取目标负载策略的路由数组中所有服务地址的数量。
上述计算地址子单元中,预设算式可以为:add=g[n%l],其中,add为所述目标服务地址,n为所述第一数值,l为所述路由数组中服务地址的数量,g为所述路由数组,g[n%l]为取所述路由数组中第n%l个服务地址,具体而言,首先求得第一数值除以数量的余数m,即m=n%l,而g[m]则为路由数组中第m个服务地址,例如,当求得m为5时,即上述目标服务地址为路由数组中的第五个服务地址。
在一个实施例中,上述得到地址单元500,包括:
选择地址子单元,用于通过随机算法从所述目标负载策略的路由数组中选择出所述目标服务地址。
由于路由数组包含有多个服务地址,每个服务地址对应一组处理服务器,当要将网络请求转发到服务器时,则需要从多个服务地址中选择该服务器的服务地址,本实施例中,通过随机算法进行选择,随机选择多个服务地址中的一个,上述随机算法可以为已知的数值概率算法、蒙特卡洛算法MonteCarlo、舍伍德算法Sherwood等算法中的任一种,计算过程为现有技术,这里不再赘述,通过随机算法计算得到该路由数组中的一个服务地址,该服务地址即为上述目标服务地址。
参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储流量负载过程所需的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种流量均衡负载方法。
上述处理器执行上述流量均衡负载方法的步骤:获取用户通过目标系统发起的网络请求;依据所述网络请求生成调用指令;依据所述调用指令调用预设的策略集,所述策略集包括多个负载策略;将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略;从所述目标负载策略中得到与所述网络请求对应的目标服务地址;将所述网络请求转发到所述目标服务地址对应的服务器。
上述计算机设备,上述依据所述调用指令调用预设的策略集的步骤,包括:依据所述调用指令将预设数据库中的所述策略集加载至本地内存,以调用所述策略集。
在一个实施例中,上述策略集中包括对应指定业务系统的私有负载策略以及对应所有业务系统的公有负载策略,所述将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略的步骤,包括:将所述私有负载策略与所述网络请求进行匹配;若匹配不到所述目标负载策略,则将所述公有负载策略与所述网络请求进行匹配,以找到所述目标负载策略。
在一个实施例中,上述负载策略包括请求属性以及预设条件,所述将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略的步骤,包括:依据每个所述负载策略的请求属性从所述网络请求中获取对应所述负载策略的属性值;依次判断所述属性值是否满足对应的所述负载策略的预设条件,直到找到所述属性值满足所述预设条件的所述目标负载策略。
在一个实施例中,上述目标负载策略中还包括有路由数组,所述路由数组中包括多个服务地址,所述从所述目标负载策略中得到与所述网络请求对应的目标服务地址的步骤,包括:获取所述用户的手机号码以及所述目标系统的系统ID;将所述手机号码以及系统ID通过hash函数运算得到第一数值;获取所述路由数组中所有服务地址的数量;将所述第一数值以及所述数量通过预设算式计算得到所述目标服务地址。
在一个实施例中,上述将所述第一数值以及上述数量通过预设算式计算得到所述目标服务地址的步骤,包括:利用以下预设算式计算得到所述目标服务地址:add=g[n%l],其中,add为所述目标服务地址,n为所述第一数值,l为所述路由数组中服务地址的数量,g为所述路由数组,g[n%l]为取所述路由数组中第n%l个服务地址。
在一个实施例中,上述从所述目标负载策略中得到与所述网络请求对应的目标服务地址的步骤,包括:通过随机算法从所述目标负载策略的路由数组中选择出所述目标服务地址。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种流量均衡负载方法,具体为:获取用户通过目标系统发起的网络请求;依据所述网络请求生成调用指令;依据所述调用指令调用预设的策略集,所述策略集包括多个负载策略;将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略;从所述目标负载策略中得到与所述网络请求对应的目标服务地址;将所述网络请求转发到所述目标服务地址对应的服务器。
上述计算机可读存储介质,上述依据所述调用指令调用预设的策略集的步骤,包括:依据所述调用指令将预设数据库中的所述策略集加载至本地内存,以调用所述策略集。
在一个实施例中,上述策略集中包括对应指定业务系统的私有负载策略以及对应所有业务系统的公有负载策略,所述将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略的步骤,包括:将所述私有负载策略与所述网络请求进行匹配;若匹配不到所述目标负载策略,则将所述公有负载策略与所述网络请求进行匹配,以找到所述目标负载策略。
在一个实施例中,上述负载策略包括请求属性以及预设条件,所述将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略的步骤,包括:依据每个所述负载策略的请求属性从所述网络请求中获取对应所述负载策略的属性值;依次判断所述属性值是否满足对应的所述负载策略的预设条件,直到找到所述属性值满足所述预设条件的所述目标负载策略。
在一个实施例中,上述目标负载策略中还包括有路由数组,所述路由数组中包括多个服务地址,所述从所述目标负载策略中得到与所述网络请求对应的目标服务地址的步骤,包括:获取所述用户的手机号码以及所述目标系统的系统ID;将所述手机号码以及系统ID通过hash函数运算得到第一数值;获取所述路由数组中所有服务地址的数量;将所述第一数值以及所述数量通过预设算式计算得到所述目标服务地址。
在一个实施例中,上述将所述第一数值以及上述数量通过预设算式计算得到所述目标服务地址的步骤,包括:利用以下预设算式计算得到所述目标服务地址:add=g[n%l],其中,add为所述目标服务地址,n为所述第一数值,l为所述路由数组中服务地址的数量,g为所述路由数组,g[n%l]为取所述路由数组中第n%l个服务地址。
在一个实施例中,上述从所述目标负载策略中得到与所述网络请求对应的目标服务地址的步骤,包括:通过随机算法从所述目标负载策略的路由数组中选择出所述目标服务地址。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种流量均衡负载方法,其特征在于,包括:
获取用户通过目标系统发起的网络请求;
依据所述网络请求生成调用指令;
依据所述调用指令调用预设的策略集,所述策略集包括多个负载策略;
将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略;
从所述目标负载策略中得到与所述网络请求对应的目标服务地址;
将所述网络请求转发到所述目标服务地址对应的服务器。
2.根据权利要求1所述的流量均衡负载方法,其特征在于,所述依据所述调用指令调用预设的策略集的步骤,包括:
依据所述调用指令将预设数据库中的所述策略集加载至本地内存,以调用所述策略集。
3.根据权利要求1所述的流量均衡负载方法,其特征在于,所述策略集中包括对应指定业务系统的私有负载策略以及对应所有业务系统的公有负载策略,所述将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略的步骤,包括:
将所述私有负载策略与所述网络请求进行匹配;
若匹配不到所述目标负载策略,则将所述公有负载策略与所述网络请求进行匹配,以找到所述目标负载策略。
4.根据权利要求1所述的流量均衡负载方法,其特征在于,所述负载策略包括请求属性以及预设条件,所述将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略的步骤,包括:
依据每个所述负载策略的请求属性从所述网络请求中获取对应所述负载策略的属性值;
依次判断所述属性值是否满足对应的所述负载策略的预设条件,直到找到所述属性值满足所述预设条件的所述目标负载策略。
5.根据权利要求1所述的流量均衡负载方法,其特征在于,所述目标负载策略中还包括有路由数组,所述路由数组中包括多个服务地址,所述从所述目标负载策略中得到与所述网络请求对应的目标服务地址的步骤,包括:
获取所述用户的手机号码以及所述目标系统的系统ID;
将所述手机号码以及系统ID通过hash函数运算得到第一数值;
获取所述路由数组中所有服务地址的数量;
将所述第一数值以及所述数量通过预设算式计算得到所述目标服务地址。
6.根据权利要求5所述的流量均衡负载方法,其特征在于,所述将所述第一数值以及所述数量通过预设算式计算得到所述目标服务地址的步骤,包括:
利用以下预设算式计算得到所述目标服务地址:
add=g[n%l]
其中,add为所述目标服务地址,n为所述第一数值,l为所述路由数组中服务地址的数量,g为所述路由数组,g[n%l]为取所述路由数组中第n%l个服务地址。
7.根据权利要求1所述的流量均衡负载方法,其特征在于,所述从所述目标负载策略中得到与所述网络请求对应的目标服务地址的步骤,包括:
通过随机算法从所述目标负载策略的路由数组中选择出所述目标服务地址。
8.一种流量均衡负载装置,其特征在于,包括:
获取请求单元,用于获取用户通过目标系统发起的网络请求
生成调用单元,用于依据所述网络请求生成调用指令;
调用策略单元,用于依据所述调用指令调用预设的策略集,所述策略集包括多个负载策略;
匹配策略单元,用于将所述策略集中多个负载策略一一与所述网络请求按照预设匹配规则进行匹配,以找到对应所述网络请求的目标负载策略;
得到地址单元,用于从所述目标负载策略中得到与所述网络请求对应的目标服务地址;
转发请求单元,用于将所述网络请求转发到所述目标服务地址对应的服务器。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910319068.9A CN110011928B (zh) | 2019-04-19 | 2019-04-19 | 流量均衡负载方法、装置、计算机设备和存储介质 |
PCT/CN2019/118386 WO2020211365A1 (zh) | 2019-04-19 | 2019-11-14 | 流量均衡负载方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910319068.9A CN110011928B (zh) | 2019-04-19 | 2019-04-19 | 流量均衡负载方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110011928A true CN110011928A (zh) | 2019-07-12 |
CN110011928B CN110011928B (zh) | 2022-08-19 |
Family
ID=67173167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910319068.9A Active CN110011928B (zh) | 2019-04-19 | 2019-04-19 | 流量均衡负载方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110011928B (zh) |
WO (1) | WO2020211365A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110740164A (zh) * | 2019-09-04 | 2020-01-31 | 无锡华云数据技术服务有限公司 | 服务器确定方法、调控方法、装置、设备及存储介质 |
CN110944067A (zh) * | 2019-12-27 | 2020-03-31 | 华为技术有限公司 | 一种负载均衡方法和服务器 |
WO2020211365A1 (zh) * | 2019-04-19 | 2020-10-22 | 平安科技(深圳)有限公司 | 流量均衡负载方法、装置、计算机设备和存储介质 |
CN114143269A (zh) * | 2021-11-12 | 2022-03-04 | 上海途虎信息技术有限公司 | 一种http请求分流方法、装置、设备及介质 |
CN114466019A (zh) * | 2022-04-11 | 2022-05-10 | 阿里巴巴(中国)有限公司 | 分布式计算系统、负载均衡方法、设备及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113452800B (zh) * | 2021-08-31 | 2021-11-30 | 深圳市信润富联数字科技有限公司 | 基于MQTT协议多Broker实现负载均衡的方法 |
CN114978951B (zh) * | 2022-06-07 | 2023-08-18 | 武汉大学 | 一种云平台负载均衡方法 |
CN115037803B (zh) * | 2022-06-09 | 2024-03-22 | 云南电网有限责任公司信息中心 | 一种服务调用方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468823A (zh) * | 2014-12-24 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种集群负载均衡调度方法及系统 |
US20150281339A1 (en) * | 2014-03-28 | 2015-10-01 | Futurewei Technologies, Inc. | Context-Aware Dynamic Policy Selection for Load Balancing Behavior |
WO2018099384A1 (zh) * | 2016-11-29 | 2018-06-07 | 中兴通讯股份有限公司 | 报文的负载均衡方法、装置及系统 |
CN108965381A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 基于Nginx的负载均衡实现方法、装置、计算机设备和介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512702B1 (en) * | 2002-03-19 | 2009-03-31 | Cisco Technology, Inc. | Method and apparatus providing highly scalable server load balancing |
US7818401B2 (en) * | 2004-12-23 | 2010-10-19 | General Instrument Corporation | Method and apparatus for providing decentralized load distribution |
CN104852934A (zh) * | 2014-02-13 | 2015-08-19 | 阿里巴巴集团控股有限公司 | 基于前端调度实现流量分配的方法、装置和系统 |
CN105376334A (zh) * | 2015-12-14 | 2016-03-02 | 曙光信息产业(北京)有限公司 | 负载均衡方法及装置 |
CN110011928B (zh) * | 2019-04-19 | 2022-08-19 | 平安科技(深圳)有限公司 | 流量均衡负载方法、装置、计算机设备和存储介质 |
-
2019
- 2019-04-19 CN CN201910319068.9A patent/CN110011928B/zh active Active
- 2019-11-14 WO PCT/CN2019/118386 patent/WO2020211365A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150281339A1 (en) * | 2014-03-28 | 2015-10-01 | Futurewei Technologies, Inc. | Context-Aware Dynamic Policy Selection for Load Balancing Behavior |
CN104468823A (zh) * | 2014-12-24 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种集群负载均衡调度方法及系统 |
WO2018099384A1 (zh) * | 2016-11-29 | 2018-06-07 | 中兴通讯股份有限公司 | 报文的负载均衡方法、装置及系统 |
CN108965381A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 基于Nginx的负载均衡实现方法、装置、计算机设备和介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020211365A1 (zh) * | 2019-04-19 | 2020-10-22 | 平安科技(深圳)有限公司 | 流量均衡负载方法、装置、计算机设备和存储介质 |
CN110740164A (zh) * | 2019-09-04 | 2020-01-31 | 无锡华云数据技术服务有限公司 | 服务器确定方法、调控方法、装置、设备及存储介质 |
CN110740164B (zh) * | 2019-09-04 | 2021-01-08 | 华云数据控股集团有限公司 | 服务器确定方法、调控方法、装置、设备及存储介质 |
CN110944067A (zh) * | 2019-12-27 | 2020-03-31 | 华为技术有限公司 | 一种负载均衡方法和服务器 |
CN114143269A (zh) * | 2021-11-12 | 2022-03-04 | 上海途虎信息技术有限公司 | 一种http请求分流方法、装置、设备及介质 |
CN114466019A (zh) * | 2022-04-11 | 2022-05-10 | 阿里巴巴(中国)有限公司 | 分布式计算系统、负载均衡方法、设备及存储介质 |
CN114466019B (zh) * | 2022-04-11 | 2022-09-16 | 阿里巴巴(中国)有限公司 | 分布式计算系统、负载均衡方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020211365A1 (zh) | 2020-10-22 |
CN110011928B (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110011928A (zh) | 流量均衡负载方法、装置、计算机设备和存储介质 | |
Huang et al. | Brokerchain: A cross-shard blockchain protocol for account/balance-based state sharding | |
CN111405019B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
JP3566626B2 (ja) | 異種サーバ装置内の資源を管理するためのシステム | |
EP2149246B1 (en) | A system and method for creating a list of shared information on a peer-to-peer network | |
CN106161610A (zh) | 一种分布式存储的方法和系统 | |
US20080263082A1 (en) | Recovery segment identification in a computing infrastructure | |
CN109213568A (zh) | 一种区块链网络服务平台及其部署方法、存储介质 | |
CN112468309B (zh) | 基于智能合约的域名管理系统 | |
CN112468525B (zh) | 一种基于区块链的域名管理系统 | |
JP2007515008A (ja) | グリッド・システム資源をオンデマンドで制御する装置、システム及び方法 | |
CN103501358B (zh) | 一种域名托管管理方法及装置 | |
CN102075556A (zh) | 一种具备大规模负载能力的服务架构设计方法 | |
CN103957282B (zh) | 一种域内终端用户域名解析加速系统及其方法 | |
CN109784703A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
KR20090033968A (ko) | 정책 및 과금 규칙 결정 시스템에서 디아미터 인터페이스처리 방법 및 장치 | |
CN116743585B (zh) | 一种基于云原生的多租户api网关服务暴露系统及方法 | |
CN114143090B (zh) | 基于网络安全架构的防火墙部署方法、装置、设备及介质 | |
CN112019577B (zh) | 专属云存储实现方法、装置、计算设备及计算机存储介质 | |
CN1330124C (zh) | 虚拟化网络资源的方法和装置 | |
US20160226963A1 (en) | Load balancing using predictable state partitioning | |
CN201577106U (zh) | 防火墙策略生成装置及系统 | |
CN103841200B (zh) | 一种软件许可的控制方法和装置 | |
Guo et al. | Blockchain-assisted caching optimization and data storage methods in edge environment | |
CN101207518B (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 |