CN114222002A - 业务请求处理方法及装置、存储介质及电子设备 - Google Patents
业务请求处理方法及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114222002A CN114222002A CN202010920586.9A CN202010920586A CN114222002A CN 114222002 A CN114222002 A CN 114222002A CN 202010920586 A CN202010920586 A CN 202010920586A CN 114222002 A CN114222002 A CN 114222002A
- Authority
- CN
- China
- Prior art keywords
- service request
- parameter
- flow control
- geographical
- tokens
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 75
- 238000012545 processing Methods 0.000 claims description 56
- 238000012795 verification Methods 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 238000005111 flow chemistry technique Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种业务请求处理方法及装置、存储介质及电子设备,该方法包括:当接收到业务请求时,对业务请求进行解析,获得业务请求对应的源IP地址;确定源IP地址的地理位置参数;将地理位置参数与预先设置的位置校验参数进行匹配,得到匹配结果;依据匹配结果确定业务请求对应的热点参数;基于热点参数判断业务请求是否满足预先设置的地理流控条件;若业务请求满足地理流控条件,则拒绝该业务请求。应用本发明提供的方法,能够确定业务请求的地理位置参数,并依据地理位置参数和位置校验参数的匹配结果进行流量控制,能够在地理维度上实现流控,在一些涉及地理区域的流量处理场景下,能够高效的进行流量控制。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种业务请求处理方法及装置、存储介质及电子设备。
背景技术
随着科学技术的发展,互联网也得到长足发展,各种互联网应用服务层出不穷,使得人们可以通过这些应用服务进行各式各样的活动,例如,可以看视频、听音乐、浏览新闻以及办公等等。为了保障服务质量,在提供应用服务的过程中,通常需要进行流量控制,以应对因为流量激增引起的服务负载过高所造成的服务响应过慢的问题。
现有技术中,为了应对流量激增的问题,通常采用对http协议或固定IP进行限制的方式进行流量控制,然而,在一些场景下,例如,某一地理区域的用户的流量激增时,采用现有的限制方式,无法高效的实现流量控制。
发明内容
本发明所要解决的技术问题是提供一种业务请求处理方法,以在地理区域的维度上进行流量控制。
本发明还提供了一种业务请求处理装置,用以保证上述方法在实际中的实现及应用。
一种业务请求处理方法,包括:
当接收到业务请求时,对所述业务请求进行解析,获得所述业务请求对应的源IP地址;
确定所述源IP地址对应的地理位置参数;
将所述地理位置参数与预先设置的位置校验参数进行匹配,得到匹配结果;
依据所述匹配结果确定所述业务请求对应的热点参数;
基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件;
若所述业务请求满足所述地理流控条件,则拒绝所述业务请求。
上述的方法,可选的,对所述业务请求进行解析,获得所述业务请求对应的源IP地址,包括:
应用预先设置的至少一个过滤器对所述业务请求进行处理,得到目标业务请求;
获取所述目标业务请求的X-Forwarded-For字段;
在所述的X-Forwarded-For字段的字符串数组中提取出首个字符串,将所述字符串确定为所述业务请求对应的源IP地址。
上述的方法,可选的,所述依据所述匹配结果确定所述业务请求对应的热点参数,包括:
若所述匹配结果表征所述地理位置参数与所述位置校验参数匹配成功,则将所述地理位置参数作为所述业务请求对应的热点参数;
若所述匹配结果表征所述地理位置参数与所述位置校验参数匹配失败,则获取与所述匹配结果对应的预设参数值,将所述预设参数值作为所述业务请求对应的热点参数。
上述的方法,可选的,所述基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件,包括:
在所述热点参数为所述地理位置参数的情况下,确定所述热点参数对应的令牌个数,并判断所述令牌个数是否为零;若所述令牌个数为零,则判定所述业务请求满足所述地理流控条件;
在所述热点参数为所述预设参数值的情况下,确定所述业务请求不满足所述地理流控条件。
上述的方法,可选的,还包括:
若所述令牌个数不为零,则对所述令牌个数进行计算,获得令牌申请阈值,并确定所述业务请求对应的申请令牌个数;
将所述申请令牌个数与所述令牌申请阈值进行比较;
在所述申请令牌个数大于所述令牌申请阈值的情况下,判定所述业务请求满足所述地理流控条件;
在所述申请令牌个数未大于所述令牌申请阈值的情况下,获取所述业务请求对应的令牌桶,并判断所述申请令牌个数是否大于所述令牌桶中当前剩余的令牌数量;
若所述申请令牌个数大于所述令牌桶中当前剩余的令牌数量,则确定所述业务请求满足所述地理流控条件;
若所述申请令牌个数未大于所述令牌桶中当前剩余的令牌数量,则确定所述业务请求未满足所述地理流控条件。
上述的方法,可选的,所述拒绝所述业务请求之后,还包括:
确定所述业务请求对应的异常状态码;
将所述异常状态码反馈至所述业务请求对应的客户端。
上述的方法,可选的,还包括:
若所述业务请求未满足所述地理流控条件,则在预先设置的处理器槽链中确定目标处理槽;
应用所述目标处理槽对所述业务请求进行处理。
一种业务请求处理装置,包括:
接收单元,用于当接收到业务请求时,对所述业务请求进行解析,获得所述业务请求对应的源IP地址;
第一确定单元,用于确定所述源IP地址对应的地理位置参数;
匹配单元,用于将所述地理位置参数与预先设置的位置校验参数进行匹配,得到匹配结果;
第二确定单元,用于依据所述匹配结果确定所述业务请求对应的热点参数;
判断单元,用于基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件;
执行单元,用于当所述业务请求满足所述地理流控条件时,则拒绝所述业务请求。
一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的业务请求处理方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上述的业务请求处理方法。
与现有技术相比,本发明包括以下优点:
本发明提供了一种业务请求处理方法及装置、存储介质及电子设备,该方法包括:当接收到业务请求时,对所述业务请求进行解析,获得所述业务请求对应的源IP地址;确定所述源IP地址对应的地理位置参数;将所述地理位置参数与预先设置的位置校验参数进行匹配,得到匹配结果;依据所述匹配结果确定所述业务请求对应的热点参数;基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件;若所述业务请求满足所述地理流控条件,则拒绝所述业务请求。应用本发明提供的业务请求处理方法,能够确定业务请求的源IP地址对应的地理位置参数,并依据地理位置参数和位置校验参数的匹配结果,判断业务请求是否满足流控条件,能够在地理维度上实现流量控制;在一些涉及地理区域的流量处理场景下,能够高效的进行流量控制。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种业务请求处理方法的方法流程图;
图2为本发明提供的一种地理位置流控规则配置过程示例图;
图3为本发明提供的一种获得源IP地址的过程的流程图;
图4为本发明提供的一种流控规则配置界面的示例图;
图5为本发明提供的一种业务请求处理装置的结构示意图;
图6为本发明提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种业务请求处理方法,该方法可以应用于电子设备,该电子设备可以为网关设备等,所述方法的方法流程图如图1所示,具体包括:
S101:当接收到业务请求时,对所述业务请求进行解析,获得所述业务请求对应的源IP地址。
本发明实施例提供的方法中,该业务请求可以用于请求相应的业务的服务,该服务请求可以为客户端发出的http请求,该请求经由互联网网络设备和nginx服务器发送至电子设备。
其中,当接收到该业务请求时,可以调用预先设置的目标过滤器对该业务请求进行解析,获得业务请求对应的源IP地址;也可以调用预先设置的一个或多个过滤器对该业务请求进行解析,得到目标业务请求,并通过预先设置的目标过滤器对该目标业务请求进行解析,获得该业务请求对应的源IP地址。
其中,该目标过滤器依据地理位置流控规则生成,该地理位置流控规则可以包含解析方式以及限流条件等。
参见图2,为本发明提供的一种地理位置流控规则的配置过程的示例图,该地理位置流控规则可以通过对应的控制台进行配置,控制台可以将已配置好的流控规则通过相应的API持久化到配置中心,使得配置中心向流控规则发送更新通知,使得配置有流控客户端的电子设备在配置中心获取到该流控规则,并将该流控规则以类的对象的形式保存到其内存中;该控制台可以为sentinel控制台,该配置中心可以为Apollo配置中心,该流控客户端可以为Apollo客户端。
可选的,该源IP地址可以为发送该业务请求的客户端的IP地址。
S102:确定所述源IP地址对应的地理位置参数。
本发明实施例提供的方法中,可以将该源IP地址传递至预置的IP地域组件,以获取到该源IP地址对应的地理区域标识,将该地理区域标识作为地理位置参数,该地理区域标识可以为省市代码;一个地理区域标识可以用于指代一个地理区域,该IP地域组件可以由ipseekper类构成。
其中,该地理位置参数可以用于指代发送该业务请求的客户端所处的地理区域,即,该地理位置参数与该客户端所处的地理区域相对应。
S103:将所述地理位置参数与预先设置的位置校验参数进行匹配,得到匹配结果。
本发明实施例提供的方法中,位置校验参数的数量可以为一个或多个,在位置校验参数为多个的情况下,将该地理位置参数与各个位置校验参数进行匹配。
其中,该匹配结果可以表征地理位置参数与该位置校验参数匹配成功或匹配失败,若地理位置参数与任意一个预设的位置校验参数一致,或者地理位置参数对应的地理区域与该位置校验参数对应的地理区域一致,则可以确定地理位置参数与该校验位置参数匹配成功;否则匹配不成功。
具体的,该位置校验参数可以为地理位置流控规则中的pattem值。
S104:依据所述匹配结果确定所述业务请求对应的热点参数。
本发明实施例提供的方法中,该热点参数可以表征该业务请求的地理特征。
S105:基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件,若是,执行S106,若否,执行S107。
本发明实施例提供的方法中,该地理流控条件可以指热点参数对应的令牌个数满足预设的至少一个数量指标。
S106:拒绝所述业务请求。
S107:对所述业务请求执行预设的处理操作。
其中,在该业务请求不满足地理流控条件的情况下,可以对该业务请求进行其他类型的流控条件的判断,或者执行该业务请求对应的业务操作。
应用本发明实施例提供的方法,能够确定业务请求的地理位置参数,并依据地理位置参数和位置校验参数的匹配结果进行流量控制,能够在地理维度上实现流控,在一些涉及地理区域的流量处理场景下,能够高效的进行流量控制。
本发明实施例提供的方法中,基于上述的实施过程,具体的,对所述业务请求进行解析,获得所述业务请求对应的源IP地址的过程,如图3所示,具体包括:
S201:应用预先设置的至少一个过滤器对所述业务请求进行处理,得到目标业务请求。
本发明实施例提供的方法中,可预先设置有ServletDetectionFilter过滤器,Servlet30WrapperFilter过滤器,FormBodyWrapperFilter过滤器,DebugFilter过滤器,PreDecorationFilter过滤器,GatewayPreCollectFilter过滤器和RequestHeaderBlackListFilter过滤器等,可以应用以上的过滤器依次对该业务请求进行处理,得到目标业务请求以及其他的一些流控指标。
S202:获取所述目标业务请求的X-Forwarded-For字段。
本发明实施例提供的方法中,可以通过目标过滤器获取目标业务请求的X-Forwarded-For字段,其中,该目标过滤器可以为SentinelZuulPreFilter过滤器。
S203:在所述的X-Forwarded-For字段的字符串数组中提取出首个字符串,将所述字符串确定为所述业务请求对应的源IP地址。
本发明实施例提供的方法中,可以通过目标过滤器在X-Forwarded-For字段的字符串数组中提取出首个字符串,其中,以逗号为分隔符对X-Forwarded-For字段进行划分,得到该字符串数组,该首个字符串即为该字符串数组的索引位置为0的字符串,可以将该字符串作为源IP地址存储到局部变量表中。
本发明实施例提供的方法中,基于上述的实施过程,具体的,所述依据所述匹配结果确定所述业务请求对应的热点参数的一种方式,可以包括:
若所述匹配结果表征所述地理位置参数与所述位置校验参数匹配成功,则将所述地理位置参数作为所述业务请求对应的热点参数;
若所述匹配结果表征所述地理位置参数与所述位置校验参数匹配失败,则获取与所述匹配结果对应的预设参数值,将所述预设参数值作为所述业务请求对应的热点参数。
本发明实施例提供的方法中,在位置校验参数为多个的情况下,若地理位置参数与任一位置校验参数匹配成功,则将该地理位置参数作为该业务请求对应的热点参数。
其中,该预设参数值可以依据实际需求进行设定,例如,可以设定为“$NM”。
本发明实施例提供的方法中,基于上述的实施过程,具体的,所述基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件,包括:
在所述热点参数为所述地理位置参数的情况下,确定所述热点参数对应的令牌个数,并判断所述令牌个数是否为零;若所述令牌个数为零,则判定所述业务请求满足所述地理流控条件;
在所述热点参数为所述预设参数值的情况下,确定所述业务请求不满足所述地理流控条件。
本发明实施例提供的方法中,在热点参数为地理位置参数的情况下,说明预先建立的参数热点映射的键集合中没有包含解析结果,则可以在预先建立的地理位置流控规则的count字段读取出令牌个数。
具体的,在热点参数为预设参数值的情况下,说明预先建立的参数热点映射的键集合包含相应的解析结果,该解析结果可以为热点参数“$NM”,基于该热点参数在该地理位置流控规则的参数指标存储中获取到相应的值(即,令牌个数),该值可以由技术人员进行设定,例如,该值可以为1000万。需要说明的是,在热点参数为预设参数值的情况下,可以认为该业务请求不满足地理流控条件。
其中,所述基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件的过程,可以应用预先设置的GatewayFlowSlot处理槽进行处理,可以在内存中获取预先存储的地理位置流控规则,判断是否存在该地理位置流控规则对应的参数指标存储,若未存在,则可以初始化该地理位置流控规则对应的参数指标存储,具体可以通过ParameterMetricStorage类的initParamMetricsFor方法初始化参数指标存储;获取到该流控规则对应的参数指标存储后,在参数指标存储中获取规则的参数值热点映射,可以将该热点参数作为键,在该参数值热点映射中获取到相应的值,该值即为令牌个数,其中,若未存在热点参数,则可以从地理位置流控规则的count字段读取出令牌个数。
具体的,在参数热点映射中或在count字段中获取到热点参数对应的令牌个数之后,可以判断令牌个数是否为零。
其中,若热点参数对应的令牌个数为零,则说明需要对该业务请求进行流量控制,即,该业务请求满足流控条件。
本发明实施例提供的方法中,基于上述的实施过程,具体的,还包括:
若所述令牌个数不为零,则对所述令牌个数进行计算,获得令牌申请阈值,并确定所述业务请求对应的申请令牌个数;
将所述申请令牌个数与所述令牌申请阈值进行比较;
在所述申请令牌个数大于所述令牌申请阈值的情况下,判定所述业务请求满足所述地理流控条件;
在所述申请令牌个数未大于所述令牌申请阈值的情况下,获取所述业务请求对应的令牌桶,并判断所述申请令牌个数是否大于所述令牌桶中当前剩余的令牌数量;
若所述申请令牌个数大于所述令牌桶中当前剩余的令牌数量,则确定所述业务请求满足所述地理流控条件;
若所述申请令牌个数未大于所述令牌桶中当前剩余的令牌数量,则确定所述业务请求未满足所述地理流控条件。
本发明实施例提供的方法中,该令牌申请阈值可以由热点参数对应的令牌个数以及预备令牌数量确定,该预备令牌数量可以为地理位置流控规则中设定的用于应对突发请求时额外允许的令牌请求数量。
具体的,该令牌申请阈值=令牌个数+预备令牌数量,即,该令牌申请阈值为令牌个数与预备令牌数量之和,其中,该预备令牌数量可以从地理位置流控规则的burstCount字段进行读取。
其中,该令牌桶可以由令牌桶算法生成,该令牌桶中存储允许访问的令牌,在该业务请求未满足流控条件的情况下,可以为该业务请求分配令牌,以便于对业务请求执行后续的逻辑处理操作。
具体的,在判断申请令牌个数是否大于令牌桶中当前剩余的令牌数量之前,还可以在地理位置流控规则对应的流控指标存储中获取上一次向令牌桶添加令牌的时间,若上一次添加令牌时间不存在,则确定该业务请求不满足流控条件;若上一次条件令牌时间存在是,则确定流失时间,该流失时间由当前时间减去上一次添加令牌的时间得到;判断流失时间的长度是否超出预先设置的统计时间窗口的长度,若超出统计时间窗口的长度,则更新所述令牌桶,得到令牌桶中新的可用令牌数量,将该新的可用令牌数量作为当前剩余的令牌数量,若未超出统计时间窗口的长度,则直接确定该令牌桶中的可用令牌数量作为当前剩余的令牌数量。其中,当前时间可以为该业务请求申请令牌的时间。
本发明实施例提供的方法中,基于上述的实施过程,具体的,依据所述匹配结果确定业务请求对应的热点参数的另一种方式,可以为:若匹配结果表征地理位置参数与位置校验参数匹配成功,则获取与匹配结果对应的预设参数值,将预设参数值作为业务请求对应的热点参数;若匹配结果表征地理位置参数与位置校验参数匹配失败,则将地理位置参数作为所述业务请求对应的热点参数。
本发明实施例提供的方法中,基于上述的实施过程,具体的,所述拒绝所述业务请求之后,还包括:
确定所述业务请求对应的异常状态码;
将所述异常状态码反馈至所述业务请求对应的客户端。
本发明实施例提供的方法中,该异常状态码用于表征该业务请求对应的异常状态,其中,该异常状态可以为ParamFlowException异常。
具体的,该异常状态码具体可以为429状态码,将该异常状态码发送至客户端,提示客户端该业务请求异常。
本发明实施例提供的方法中,基于上述的实施过程,具体的,还包括:
若所述业务请求未满足所述地理流控条件,则在预先设置的处理器槽链中确定目标处理槽;
应用所述目标处理槽对所述业务请求进行处理。
本发明实施例提供的方法中,该处理器槽链可以包括多个依次排列的处理槽,具体包括NodeSelectorSlot处理槽、ClusterBuilderSlot处理槽、LogSlot处理槽、StatisticSlot处理槽、AuthroitySlot处理槽、SystemSlot处理槽、GatewayFlowSlot处理槽、ParamSlot处理槽、FlowSlot处理槽和DegradeSlot处理槽,其中,每一处理槽均预先设置有对应的逻辑操作,可以应用GatewayFlowSlot处理槽执行上述业务请求处理方法中的基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件,若是,则拒绝所述业务请求,若否,则在预先设置的处理器槽链中确定目标处理槽等步骤。
具体的,该目标处理槽即为当前处理槽的下一处理槽,即,目标处理槽可以为ParamSlot处理槽。
在本发明提供的一实施例中,为了方便理解配置流控规则的过程,下面进行举例说明:
首先,可以登录sentinel控制台登入sentinel控制台,在控制界面找到网关应用名称core.pugc-gateway.test,点击该网关对应的流控规则,选择新增网关流控规则,进入流控规则配置界面,参见图4,为本发明实施提供的一种规则配置界面的示例图,在该规则配置界面中输入API类型:RouteID;API名称ugc-videos-api-web;勾选针对请求属性,参数属性选择AreaCode;勾选属性值匹配,匹配模式选择正则,匹配串填写需要限流的表达式,本例要求针对除天津市以外的省市访问进行限制,所以填写((?!41).)*,该值即为位置校验参数;阈值类型勾选QPS,QPS阈值按照需要限制的要求进行填写,本例要求是100,所以这里填写100;间隔填写1,单位秒;流控方式选择快速失败;Burstsize填写0;最后点击保存,以完成对地理位置流控规则的配置;具体的,响应于用户触发的保存指令,将该地理位置流控规则编码为JSON字符串,具体如下:
其中,burst的值为0,用于表示应对突发请求时额外允许的请求数目为0;controlBehavior的值为0,用于表示流量整形的控制效果为快速失败;count的值为100,表示限流的阈值为100;grade的值为1,表示限流阈值类型是QPS;intervalSec的值为1,表示统计时间窗口为1秒。
具体的,maxQueueingTimeoutMs的值为500,表示匀速排队模式下的最长排队时间,单位是毫秒,仅在匀速排队模式下生效,对本例无效;parseStrategy的值为5,表示解析规则是地理位置;matchStrategy的值为2,表示使用正则表达式匹配pattern的值是((?!41).)*,是要进行匹配的正则表达式(即,位置校验参数);resouce的值是ugc-videos-api-web,表示要限流的网关路由ID;resourceMode的值是0,表示资源类型是路由。
具体的,编码后的JSON字符串通过Apollo配置中心开放API持久化到Apollo配置中心。在Apollo配置中心以键core.pugc-gateway.test-flow-rules进行存储。Apollo配置中心通过长连接,将配置变更信息推送给应用core.pugc-gateway.test。应用core.pugc-gateway.test通过解析JSON字符串,把配置的规则以类GatewayFlowRule的对象的形式,保存到内存中。
与图1所述的方法相对应,本发明实施例还提供了一种业务请求处理装置,用于对图1中方法的具体实现,本发明实施例提供的业务请求处理装置可以应用于计算机终端或各种移动设备中,其结构示意图如图5所示,具体包括:
接收单元301,用于当接收到业务请求时,对所述业务请求进行解析,获得所述业务请求对应的源IP地址;
第一确定单元302,用于确定所述源IP地址对应的地理位置参数;
匹配单元303,用于将所述地理位置参数与预先设置的位置校验参数进行匹配,得到匹配结果;
第二确定单元304,用于依据所述匹配结果确定所述业务请求对应的热点参数;
判断单元305,用于基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件;
执行单元306,用于当所述业务请求满足所述地理流控条件时,则拒绝所述业务请求。
在本发明提供的一实施例中,基于上述的方案,具体的,接收单元301,被配置为:
应用预先设置的至少一个过滤器对所述业务请求进行处理,得到目标业务请求;
获取所述目标业务请求的X-Forwarded-For字段;
在所述的X-Forwarded-For字段的字符串数组中提取出首个字符串,将所述字符串确定为所述业务请求对应的源IP地址。
在本发明提供的一实施例中,基于上述的方案,具体的,所述第二确定单元304,被配置为:
若所述匹配结果表征所述地理位置参数与所述位置校验参数匹配成功,则将所述地理位置参数作为所述业务请求对应的热点参数;
若所述匹配结果表征所述地理位置参数与所述位置校验参数匹配失败,则获取与所述匹配结果对应的预设参数值,将所述预设参数值作为所述业务请求对应的热点参数。
在本发明提供的一实施例中,基于上述的方案,具体的,判断单元305,被配置为:
在所述热点参数为所述地理位置参数的情况下,确定所述热点参数对应的令牌个数,并判断所述令牌个数是否为零;若所述令牌个数为零,则判定所述业务请求满足所述地理流控条件;
在所述热点参数为所述预设参数值的情况下,确定所述业务请求不满足所述地理流控条件。
在本发明提供的一实施例中,基于上述的方案,具体的,所述判断单元305还包括判断子单元,该判断子单元,被配置为:
若所述令牌个数不为零,则对所述令牌个数进行计算,获得令牌申请阈值,并确定所述业务请求对应的申请令牌个数;
将所述申请令牌个数与所述令牌申请阈值进行比较;
在所述申请令牌个数大于所述令牌申请阈值的情况下,判定所述业务请求满足所述地理流控条件;
在所述申请令牌个数未大于所述令牌申请阈值的情况下,获取所述业务请求对应的令牌桶,并判断所述申请令牌个数是否大于所述令牌桶中当前剩余的令牌数量;
若所述申请令牌个数大于所述令牌桶中当前剩余的令牌数量,则确定所述业务请求满足所述地理流控条件;
若所述申请令牌个数未大于所述令牌桶中当前剩余的令牌数量,则确定所述业务请求未满足所述地理流控条件。
在本发明提供的一实施例中,基于上述的方案,具体的,所述业务请求处理装置还包括反馈单元,该反馈单元被配置为:
确定所述业务请求对应的异常状态码;
将所述异常状态码反馈至所述业务请求对应的客户端。
在本发明提供的一实施例中,基于上述的方案,具体的,所述业务请求处理装置还包括处理单元,该处理单元被配置为:
若所述业务请求未满足所述地理流控条件,则在预先设置的处理器槽链中确定目标处理槽;
应用所述目标处理槽对所述业务请求进行处理。
上述本发明实施例公开的业务请求处理装置中的各个单元和模块具体的原理和执行过程,与上述本发明实施例公开的业务请求处理方法相同,可参见上述本发明实施例提供的业务请求处理方法中相应的部分,这里不再进行赘述。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述业务请求处理方法。
本发明实施例还提供了一种电子设备,其结构示意图如图6所示,具体包括存储器401,以及一个或者一个以上的指令402,其中一个或者一个以上指令402存储于存储器401中,且经配置以由一个或者一个以上处理器403执行所述一个或者一个以上指令402进行以下操作:
当接收到业务请求时,对所述业务请求进行解析,获得所述业务请求对应的源IP地址;
确定所述源IP地址对应的地理位置参数;
将所述地理位置参数与预先设置的位置校验参数进行匹配,得到匹配结果;
依据所述匹配结果确定所述业务请求对应的热点参数;
基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件;
若所述业务请求满足所述地理流控条件,则拒绝所述业务请求。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种业务请求处理方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种业务请求处理方法,其特征在于,包括:
当接收到业务请求时,对所述业务请求进行解析,获得所述业务请求对应的源IP地址;
确定所述源IP地址对应的地理位置参数;
将所述地理位置参数与预先设置的位置校验参数进行匹配,得到匹配结果;
依据所述匹配结果确定所述业务请求对应的热点参数;
基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件;
若所述业务请求满足所述地理流控条件,则拒绝所述业务请求。
2.根据权利要求1所述的方法,其特征在于,对所述业务请求进行解析,获得所述业务请求对应的源IP地址,包括:
应用预先设置的至少一个过滤器对所述业务请求进行处理,得到目标业务请求;
获取所述目标业务请求的X-Forwarded-For字段;
在所述的X-Forwarded-For字段的字符串数组中提取出首个字符串,将所述字符串确定为所述业务请求对应的源IP地址。
3.根据权利要求1所述的方法,其特征在于,所述依据所述匹配结果确定所述业务请求对应的热点参数,包括:
若所述匹配结果表征所述地理位置参数与所述位置校验参数匹配成功,则将所述地理位置参数作为所述业务请求对应的热点参数;
若所述匹配结果表征所述地理位置参数与所述位置校验参数匹配失败,则获取与所述匹配结果对应的预设参数值,将所述预设参数值作为所述业务请求对应的热点参数。
4.根据权利要求3所述的方法,其特征在于,所述基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件,包括:
在所述热点参数为所述地理位置参数的情况下,确定所述热点参数对应的令牌个数,并判断所述令牌个数是否为零;若所述令牌个数为零,则判定所述业务请求满足所述地理流控条件;
在所述热点参数为所述预设参数值的情况下,确定所述业务请求不满足所述地理流控条件。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述令牌个数不为零,则对所述令牌个数进行计算,获得令牌申请阈值,并确定所述业务请求对应的申请令牌个数;
将所述申请令牌个数与所述令牌申请阈值进行比较;
在所述申请令牌个数大于所述令牌申请阈值的情况下,判定所述业务请求满足所述地理流控条件;
在所述申请令牌个数未大于所述令牌申请阈值的情况下,获取所述业务请求对应的令牌桶,并判断所述申请令牌个数是否大于所述令牌桶中当前剩余的令牌数量;
若所述申请令牌个数大于所述令牌桶中当前剩余的令牌数量,则确定所述业务请求满足所述地理流控条件;
若所述申请令牌个数未大于所述令牌桶中当前剩余的令牌数量,则确定所述业务请求未满足所述地理流控条件。
6.根据权利要求1所述的方法,其特征在于,所述拒绝所述业务请求之后,还包括:
确定所述业务请求对应的异常状态码;
将所述异常状态码反馈至所述业务请求对应的客户端。
7.根据权利要求1所述的方法,其特征在于,还包括:
若所述业务请求未满足所述地理流控条件,则在预先设置的处理器槽链中确定目标处理槽;
应用所述目标处理槽对所述业务请求进行处理。
8.一种业务请求处理装置,其特征在于,包括:
接收单元,用于当接收到业务请求时,对所述业务请求进行解析,获得所述业务请求对应的源IP地址;
第一确定单元,用于确定所述源IP地址对应的地理位置参数;
匹配单元,用于将所述地理位置参数与预先设置的位置校验参数进行匹配,得到匹配结果;
第二确定单元,用于依据所述匹配结果确定所述业务请求对应的热点参数;
判断单元,用于基于所述热点参数判断所述业务请求是否满足预先设置的地理流控条件;
执行单元,用于当所述业务请求满足所述地理流控条件时,则拒绝所述业务请求。
9.一种存储介质,其特征在于,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1~7任意一项所述的业务请求处理方法。
10.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1~7任意一项所述的业务请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010920586.9A CN114222002B (zh) | 2020-09-04 | 2020-09-04 | 业务请求处理方法及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010920586.9A CN114222002B (zh) | 2020-09-04 | 2020-09-04 | 业务请求处理方法及装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114222002A true CN114222002A (zh) | 2022-03-22 |
CN114222002B CN114222002B (zh) | 2024-03-08 |
Family
ID=80695607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010920586.9A Active CN114222002B (zh) | 2020-09-04 | 2020-09-04 | 业务请求处理方法及装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114222002B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138684A (zh) * | 2019-04-01 | 2019-08-16 | 贵州力创科技发展有限公司 | 一种基于dns日志的流量监控方法及系统 |
CN111343293A (zh) * | 2020-02-10 | 2020-06-26 | 北京首汽智行科技有限公司 | 一种基于Kong网关获取客户端IP的方法 |
-
2020
- 2020-09-04 CN CN202010920586.9A patent/CN114222002B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138684A (zh) * | 2019-04-01 | 2019-08-16 | 贵州力创科技发展有限公司 | 一种基于dns日志的流量监控方法及系统 |
CN111343293A (zh) * | 2020-02-10 | 2020-06-26 | 北京首汽智行科技有限公司 | 一种基于Kong网关获取客户端IP的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114222002B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109104336B (zh) | 服务请求处理方法、装置、计算机设备及存储介质 | |
US11356485B2 (en) | Pre-signed URLs with custom policies for data access in an object storage system | |
US20210073478A1 (en) | Systems and methods for dynamically expanding natural language processing agent capacity | |
CN110602056B (zh) | 一种业务参数传递方法及装置 | |
JP4549231B2 (ja) | サービス処理状況分析プログラム、サービス処理状況分析方法、およびサービス処理状況分析装置 | |
CN111104675A (zh) | 系统安全漏洞的检测方法和装置 | |
WO2021022875A1 (zh) | 数据的分布式存储方法及系统 | |
CN111459658A (zh) | 一种资源数据获取方法及相关设备 | |
CN111193792A (zh) | 一种消息传输方法、装置、电子设备和存储介质 | |
CN110636038A (zh) | 账号解析方法、装置、安全网关及系统 | |
CN113680074B (zh) | 业务信息的推送方法、装置、电子设备及可读介质 | |
CN105184559B (zh) | 一种支付系统及方法 | |
CN107948149B (zh) | 基于随机森林的策略自学习和优化方法及装置 | |
CN108243229B (zh) | 请求处理方法及装置 | |
CN110471966B (zh) | 信息数据校验方法、装置、计算机设备及存储介质 | |
CN110516258B (zh) | 数据校验方法及装置、存储介质、电子装置 | |
CN114222002A (zh) | 业务请求处理方法及装置、存储介质及电子设备 | |
CN111338607A (zh) | 一种用于测试的业务数据的选择方法、装置及电子设备 | |
CN115987685B (zh) | 一种云服务数据共享方法及系统 | |
CN111884932B (zh) | 一种链路确定方法、装置、设备和计算机可读存储介质 | |
CN110572417B (zh) | 用于提供登录票据的方法、装置、服务器以及存储介质 | |
CN115905227A (zh) | 一种数据导入方法、装置、电子设备及存储介质 | |
CN112910936B (zh) | 数据处理方法、装置、系统、电子设备及可读存储介质 | |
CN115242621A (zh) | 网络专线监控方法、装置、设备及计算机可读存储介质 | |
CN114500631A (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 |