CN115396513A - 流量的控制方法及装置、存储介质、电子设备 - Google Patents
流量的控制方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN115396513A CN115396513A CN202210883483.9A CN202210883483A CN115396513A CN 115396513 A CN115396513 A CN 115396513A CN 202210883483 A CN202210883483 A CN 202210883483A CN 115396513 A CN115396513 A CN 115396513A
- Authority
- CN
- China
- Prior art keywords
- gateway
- request
- routing
- request message
- address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 238000004891 communication Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004880 explosion Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种流量的控制方法及装置、存储介质、电子设备,其中,该方法包括:接收业务请求端发送的请求报文;解析所述请求报文中的路由关键字,其中,所述路由关键字用于指示所述请求报文的业务类型;在内存中调用预存的网关规则表,并采用所述网关规则表查找所述路由关键字的目标网关地址,其中,所述网关规则表配置有路由关键字与目标网关地址的映射表;将所述请求报文转发至所述目标网关地址,其中,所述目标网关地址与所述请求报文的业务受理端连接。通过本发明,解决了相关技术不能控制网关流量的技术问题,实现了在集成多业务的平台上对流量的精细化控制,提高了网关流量的转发效率。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种流量的控制方法及装置、存储介质、电子设备。
背景技术
相关技术中,公司业务系统众多,对外提供的域名服务众多,同时存在多租户多业务的使用场景,每个应用的流量需求和管控需求不一致,从而需要针对租户及其业务做精细化的流量控制。
相关技术在进行转发报文时,通常不会在网关上进行流量的控制,导致流量拥塞,同时,在包括PASS和SASS的云计算平台上,各个上游服务的流量也是采用单独的网关和网关控制器基于请求报文中携带的目的网关地址进行匹配和转发,进而导致资源浪费,服务集成度低,也无法针对网关进行流量控制。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种流量的控制方法及装置、存储介质、电子设备。
根据本发明实施例的一个方面,提供了一种流量的控制方法,包括:接收业务请求端发送的请求报文;解析所述请求报文中的路由关键字,其中,所述路由关键字用于指示所述请求报文的业务类型;在内存中调用预存的网关规则表,并采用所述网关规则表查找所述路由关键字的目标网关地址,其中,所述网关规则表配置有路由关键字与目标网关地址的映射表;将所述请求报文转发至所述目标网关地址,其中,所述目标网关地址与所述请求报文的业务受理端连接。
可选的,采用所述网关规则表查找所述路由关键字的目标网关地址包括:读取所述网关规则表中的规则节点集合;在所述规则节点集合中查找与所述路由关键字匹配的第一规则节点;若所述规则节点集合中存在与所述路由关键字匹配的第一规则节点,在所述网关规则表中查找与所述第一规则节点对应的第一网关地址;将所述第一网关地址确定为与所述请求报文匹配的目标网关地址。
可选的,在所述规则节点集合中查找与所述路由关键字匹配的第一规则节点包括:解析所述路由关键字的字段类型;若所述字段类型为路由路径,在所述规则节点集合中查找与所述路由路径匹配的路由路径规则节点;若所述字段类型为请求头,在所述规则节点集合中查找与所述请求头匹配的请求头规则节点;若所述字段类型为查询参数,在所述规则节点集合中查找与所述查询参数匹配的查询参数规则节点。
可选的,将所述请求报文转发至所述目标网关地址包括以下之一:将所述请求报文转发至第一路由地址,其中,所述第一路由地址为网关集群的主机端口地址,所述网关集群包括多个分布式网关,每个网关通过负载均衡的策略承载业务流量,所述网关集群用于处理同一业务类型的业务流量;将所述请求报文转发至第二路由地址,其中,所述第二路由地址为共享网关的主机端口地址,所述共享网关用于同时处理多个业务类型的业务流量。
可选的,将所述请求报文转发至所述目标网关地址包括:获取所述网关规则表中的流量控制插件;从所述流量控制插件的配置信息中读取流量控制参数,其中,所述流量控制参数用于指示目标网关限制的请求报文数量;根据所述流量控制参数判断是否响应所述请求报文;若响应所述请求报文,将所述请求报文转发至所述目标网关地址。
可选的,根据所述流量控制参数判断是否响应所述请求报文包括:获取在当前周期内已经转发至目标网关的请求数量;读取所述流量控制参数中的单位时间请求数量和请求爆满数量,并将所述单位时间请求数量和所述请求爆满数量的和计算为门限数量;判断所述请求数量是否超过所述门限数量;若所述请求数量未超过所述门限数量,确定转发所述请求报文;若所述请求数量超过所述门限数量,拒绝转发所述请求报文,并向所述业务请求端返回转发拒绝消息。
可选的,在内存中调用预存的网关规则表之前,所述方法还包括以下之一:调用目标网关的主机端口配置所述网关规则表;在微服务配置中心的配置页面中创建或更新所述业务受理端的配置文件,在所述配置文件中配置所述网关规则表。
根据本发明实施例的另一个方面,提供了一种流量的控制装置,包括:接收模块,用于接收业务请求端发送的请求报文;解析模块,用于解析所述请求报文中的路由关键字,其中,所述路由关键字用于指示所述请求报文的业务类型;查找模块,用于在内存中调用预存的网关规则表,并采用所述网关规则表查找所述路由关键字的目标网关地址,其中,所述网关规则表配置有路由关键字与目标网关地址的映射表;转发模块,用于将所述请求报文转发至所述目标网关地址,其中,所述目标网关地址与所述请求报文的业务受理端连接。
可选的,所述查找模块包括:读取单元,用于读取所述网关规则表中的规则节点集合;第一查找单元,用于在所述规则节点集合中查找与所述路由关键字匹配的第一规则节点;第二查找单元,用于若所述规则节点集合中存在与所述路由关键字匹配的第一规则节点,在所述网关规则表中查找与所述第一规则节点对应的第一网关地址;确定单元,用于将所述第一网关地址确定为与所述请求报文匹配的目标网关地址。
可选的,所述第一查找单元包括:解析子单元,用于解析所述路由关键字的字段类型;查找子单元,用于若所述字段类型为路由路径,在所述规则节点集合中查找与所述路由路径匹配的路由路径规则节点;若所述字段类型为请求头,在所述规则节点集合中查找与所述请求头匹配的请求头规则节点;若所述字段类型为查询参数,在所述规则节点集合中查找与所述查询参数匹配的查询参数规则节点。
可选的,所述转发模块包括以下之一:第一转发单元,用于将所述请求报文转发至第一路由地址,其中,所述第一路由地址为网关集群的主机端口地址,所述网关集群包括多个分布式网关,每个网关通过负载均衡的策略承载业务流量,所述网关集群用于处理同一业务类型的业务流量;第二转发单元,用于将所述请求报文转发至第二路由地址,其中,所述第二路由地址为共享网关的主机端口地址,所述共享网关用于同时处理多个业务类型的业务流量。
可选的,所述转发模块包括:获取单元,用于获取所述网关规则表中的流量控制插件;读取单元,用于从所述流量控制插件的配置信息中读取流量控制参数,其中,所述流量控制参数用于指示目标网关限制的请求报文数量;判断单元,用于根据所述流量控制参数判断是否响应所述请求报文;第三转发单元,用于若响应所述请求报文,将所述请求报文转发至所述目标网关地址。
可选的,所述判断单元包括:获取子单元,用于获取在当前周期内已经转发至目标网关的请求数量;计算子单元,用于读取所述流量控制参数中的单位时间请求数量和请求爆满数量,并将所述单位时间请求数量和所述请求爆满数量的和计算为门限数量;判断子单元,用于判断所述请求数量是否超过所述门限数量;处理子单元,用于若所述请求数量未超过所述门限数量,确定转发所述请求报文;若所述请求数量超过所述门限数量,拒绝转发所述请求报文,并向所述业务请求端返回转发拒绝消息。
可选的,所述装置还包括以下之一:第一配置模块,用于在所述查找模块在内存中调用预存的网关规则表之前,调用目标网关的主机端口配置所述网关规则表;第二配置模块,用于在所述查找模块在内存中调用预存的网关规则表之前,在微服务配置中心的配置页面中创建或更新所述业务受理端的配置文件,在所述配置文件中配置所述网关规则表。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
根据本发明实施例的另一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
通过本发明,接收业务请求端发送的请求报文;解析请求报文中的路由关键字,其中,路由关键字用于指示请求报文的业务类型,在内存中调用预存的网关规则表,并采用网关规则表查找路由关键字的目标网关地址,其中,网关规则表配置有路由关键字与目标网关地址的映射表,将请求报文转发至目标网关地址,其中,目标网关地址与请求报文的业务受理端连接,通过采用网关规则表查找请求报文的目标网关地址并将请求报文转发至与目标网关地址连接的业务受理端,实现在网关控制器侧对网关流量的控制,解决了相关技术不能控制网关流量的技术问题,实现了在集成多业务的平台上对流量的精细化控制,提高了网关流量的转发效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种服务器的硬件结构框图;
图2是根据本发明实施例的一种流量的控制方法的流程图;
图3是本发明实施例转发上游服务的流程图;
图4是本发明实施例配置动态更新的流程图;
图5是根据本发明实施例的一种流量的控制装置的结构框图;
图6是实施本发明实施例的一种电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本发明实施例一所提供的方法实施例可以在网关控制器,路由控制器,服务器、网关控制中心或者类似的运算装置中执行。以运行在网关控制器上为例,图1是本发明实施例的一种网关控制器的硬件结构框图。如图1所示,网关控制器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述网关控制器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述网关控制器的结构造成限定。例如,网关控制器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储网关控制器程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种流量的控制方法对应的网关控制器程序,处理器102通过运行存储在存储器104内的网关控制器程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至网关控制器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括网关控制器的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种流量的控制方法,图2是根据本发明实施例的一种流量的控制方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,接收业务请求端发送的请求报文;
本实施例的业务请求端可以是用户端(如手机端,电视端等)发起服务请求的终端,业务受理端通过微服务集成在云计算平台的PASS或SASS层上,用于对接和响应业务请求端发送的请求报文。
步骤S204,解析请求报文中的路由关键字,其中,路由关键字用于指示请求报文的业务类型;
本实施例的关键字是携带在请求报文指定位置中的字段。
步骤S206,在内存中调用预存的网关规则表,并采用网关规则表查找路由关键字的目标网关地址,其中,网关规则表配置有路由关键字与目标网关地址的映射表;
可选的,目标网关地址可以是主机端口地址,也可以是命名空间名称(group_name)。
本实施例的网关规则表路由发现配置表,根据请求报文的路径做路由发现,路由规则模块负责会当前请求路径做路由服务发现。
步骤S208,将请求报文转发至目标网关地址,其中,目标网关地址与请求报文的业务受理端连接。
在云计算平台上,每个应用在接入的过程中,因为不同业务会有不同的上游服务去对接,就会产生不一样的域名,不一样的访问路径,通过访问路径等作为网关路由关键字,然后去匹配对应的路由规则,路由规则保存了服务的上游信息的目标网关地址。
通过上述步骤,接收业务请求端发送的请求报文;解析请求报文中的路由关键字,其中,路由关键字用于指示请求报文的业务类型,在内存中调用预存的网关规则表,并采用网关规则表查找路由关键字的目标网关地址,其中,网关规则表配置有路由关键字与目标网关地址的映射表,将请求报文转发至目标网关地址,其中,目标网关地址与请求报文的业务受理端连接,通过采用网关规则表查找请求报文的目标网关地址并将请求报文转发至与目标网关地址连接的业务受理端,实现在网关控制器侧对网关流量的控制,解决了相关技术不能控制网关流量的技术问题,实现了在集成多业务的平台上对流量的精细化控制,提高了网关流量的转发效率。
在本实施例的一个实施方式中,采用网关规则表查找路由关键字的目标网关地址包括:
S11,读取网关规则表中的规则节点集合;
S12,在规则节点集合中查找与路由关键字匹配的第一规则节点;
在一个示例中,在规则节点集合中查找与路由关键字匹配的第一规则节点包括:解析路由关键字的字段类型;若字段类型为路由路径,在规则节点集合中查找与路由路径匹配的路由路径规则节点;若字段类型为请求头,在规则节点集合中查找与请求头匹配的请求头规则节点;若字段类型为查询参数,在规则节点集合中查找与查询参数匹配的查询参数规则节点。
下面结合不同的字段类型进行举例说明。规则节点为路由规则节点,由ID,目标URL(Uniform Resource Locator,统一资源定位器),断言(判断器)和过滤器组成,如果断言为true,则路由规则匹配成功。
在一个示例中,路径作为匹配路由规则:
路由规则逻辑配置示例:
由于访问路径包含了product,网关会直接匹配到后端localhost:9000提供服务。
请求头作为匹配路由规则:
当请求报文包含请求头accessToken,并且值为99888的时候,直接路由匹配成功,请求报文会被转发到实际提供服务的9000端口服务。
查询参数作为匹配路由规则:
当请求报文为localhost:8088/product?Prouduct=apple请求的时候,路由规则匹配,然后转发到9000端口提供服务。
上述示例中的url也可以替换为nacos接入方式,配置方式为:
upstream:group_name:shop#命名空间名称namespace_id:ae6a8af4-8c74-4423-92fb-466263340698#命名空间id。
S13,若规则节点集合中存在与路由关键字匹配的第一规则节点,在网关规则表中查找与第一规则节点对应的第一网关地址;
在上述示例中,localhost:9000为对应的第一网关地址。
S14,将第一网关地址确定为与请求报文匹配的目标网关地址。
在本实施例的一个实例中,将请求报文转发至目标网关地址包括以下之一:将请求报文转发至第一路由地址,其中,第一路由地址为网关集群的主机端口地址,网关集群包括多个分布式网关,每个网关通过负载均衡的策略承载业务流量,网关集群用于处理同一业务类型的业务流量;将请求报文转发至第二路由地址,其中,第二路由地址为共享网关的主机端口地址,共享网关用于同时处理多个业务类型的业务流量。
本实施例的集群指的是网关集群,分配独立网关集群,是为了让网关更有效的集中处理某些大流量的业务,可以排除其他分支业务带来的干扰。集群是指的一个分布式部署的网关集群来承担业务流量,分布式部署的每台机器通过某种负载均衡(随机,轮询,hash算法等)的方式,每台网关机器相对均衡的承担业务流量,然后转发到实际业务处理的机器,使得整个业务系统高校稳定的支撑业务。
由于在实际业务系统中,需要承载多个业务线的流量,有的流量也很大,比如营销类,订单类的应用属于大流量的业务线,可以为这些大流量的业务建立独立的一个集群;而对于些业务规模较小,比如对B端的应用,或者C端流量比较小的一些应用,他们的流量占比整体流量的比例很小,鉴于该情况,将这些小流量的应用聚合在在一起,共享同一个网关,在同一个网关一起管理,以使得资源的利用率最大化。
在本实施例的一个实施方式中,将请求报文转发至目标网关地址包括:
S21,获取网关规则表中的流量控制插件;
本实施例的插件除了流量控制插件之外,还可以是并发请求控制,黑名单功能,权限校验,日志记录等插件。
网关规则表可插拔的方式支持功能拓展,通过对规则的plugin设计模式的支持,只需要定义一个Plugin接口,然后通过实现插件接口,自定义实现自己的业务逻辑,包括流量限制,并发请求控制,黑名单功能,权限校验,日志记录等等。
S22,从流量控制插件的配置信息中读取流量控制参数,其中,流量控制参数用于指示目标网关限制的请求报文数量;
S23,根据流量控制参数判断是否响应请求报文;
在一个示例中,根据流量控制参数判断是否响应请求报文包括:获取在当前周期内已经转发至目标网关的请求数量;读取流量控制参数中的单位时间请求数量和请求爆满数量,并将单位时间请求数量和请求爆满数量的和计算为门限数量;判断请求数量是否超过门限数量;若请求数量未超过门限数量,确定转发请求报文;若请求数量超过门限数量,拒绝转发请求报文,并向业务请求端返回转发拒绝消息。
本实施例的插件机制只是动态实施流量控制的一种方式,其要依赖路由配置,他是路由配置的一部分。在一个示例中,流量控制插件的逻辑配置如下:
Plugins:标识此条路由规则支持插件模式。可以有多个插件,比如限流,黑名单,权限校验等等。
limit-conn:表示限制请求数量,使用漏斗算法实现。
Rate:单位时间(如一秒钟)请求数量。
Burst:单位时间操作了rate数量之后,还可以接收的请求数量,通常是放在一个优先级队列来时间,当请求数量操作rate+burst之和的时候,请求直接被拒绝,返回rejected_code。
本实施例在采用插件机制控制流量的一个示例中:
当我们配置的路由规则包含了插件规则节点:
如果是初始启动网关,网关控制器会将我们的路由规则直接读取加载到内存当中,然后等待客户端的请求。比如订单查询接口localhost:8088/order/query发起请求。
当客户端请求路由匹配到当前路由规则节点;
网关规则表查看是否存在plugin节点,如果存在,则遍历每一个插件节点。比如第一个节点就是流量控制节点,就会触发流量控制逻辑,流量控制是通过漏斗算法实现,漏断算法的流控参数就是刚刚配置的rate,burst,rejected_code等关键参数,流控逻辑会根据请求频率和已经发起请求处理结果返回情况,决定是否接收当前请求。
如果待请求数量没有超过rate+burst(300),接收请求,如果超过了,直接拒绝服务。
当后台配置中心刷新了最新的路由插件规则的时候,会立即刷新路由规则缓存,当后面新来的服务,可以立马读取最新的路由规则,从而实现无延迟刷新规则。
S24,若响应请求报文,将请求报文转发至目标网关地址。
在本实施例中,在内存中调用预存的网关规则表之前,还包括配置该网关规则表,可以但不限于为:调用目标网关的主机端口配置网关规则表;在微服务配置中心的配置页面中创建或更新业务受理端的配置文件,在配置文件中配置网关规则表。
本实施例的流量控制方法基于对网关控制中心的能力拓展来实现。为了更好的扩展性和灵活性,通过使用插件模式来实现,插件支持脚本lua语言,以及一些其他应用语言的支持,比如java或者python等语言。路由服务发现配置支持nacos和主机端口这两种方式配置信息。
图3是本发明实施例转发上游服务的流程图,业务请求端的请求业务包括业务系统1和业务系统2,通过SLB(Server Load Balance,负载均衡)接入本实施例的网关控制中心,网关控制中心与网关路由规则,网关插件,nacos配置中心等功能模块连接,业务受理端所在的上游服务包括Admin服务和Doc服务。
图4是本发明实施例配置动态更新的流程图,网关管控制配置路由规则等网关规则表的数据,然后存储,推送给本实施例的网关控制中心,网关插件可以灵活配置规则,并动态刷新。
网关热刷新机制。网关规则通过初始启动保存到内存当中,当发生了规则变更的时候,通过给控制台提供接口,刷新内存数据,实现规则的实时更新。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种流量的控制装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的一种流量的控制装置的结构框图,如图5所示,该装置包括:接收模块50,解析模块52,查找模块54,转发模块56,其中,
接收模块50,用于接收业务请求端发送的请求报文;
解析模块52,用于解析所述请求报文中的路由关键字,其中,所述路由关键字用于指示所述请求报文的业务类型;
查找模块54,用于在内存中调用预存的网关规则表,并采用所述网关规则表查找所述路由关键字的目标网关地址,其中,所述网关规则表配置有路由关键字与目标网关地址的映射表;
转发模块56,用于将所述请求报文转发至所述目标网关地址,其中,所述目标网关地址与所述请求报文的业务受理端连接。
可选的,所述查找模块包括:读取单元,用于读取所述网关规则表中的规则节点集合;第一查找单元,用于在所述规则节点集合中查找与所述路由关键字匹配的第一规则节点;第二查找单元,用于若所述规则节点集合中存在与所述路由关键字匹配的第一规则节点,在所述网关规则表中查找与所述第一规则节点对应的第一网关地址;确定单元,用于将所述第一网关地址确定为与所述请求报文匹配的目标网关地址。
可选的,所述第一查找单元包括:解析子单元,用于解析所述路由关键字的字段类型;查找子单元,用于若所述字段类型为路由路径,在所述规则节点集合中查找与所述路由路径匹配的路由路径规则节点;若所述字段类型为请求头,在所述规则节点集合中查找与所述请求头匹配的请求头规则节点;若所述字段类型为查询参数,在所述规则节点集合中查找与所述查询参数匹配的查询参数规则节点。
可选的,所述转发模块包括以下之一:第一转发单元,用于将所述请求报文转发至第一路由地址,其中,所述第一路由地址为网关集群的主机端口地址,所述网关集群包括多个分布式网关,每个网关通过负载均衡的策略承载业务流量,所述网关集群用于处理同一业务类型的业务流量;第二转发单元,用于将所述请求报文转发至第二路由地址,其中,所述第二路由地址为共享网关的主机端口地址,所述共享网关用于同时处理多个业务类型的业务流量。
可选的,所述转发模块包括:获取单元,用于获取所述网关规则表中的流量控制插件;读取单元,用于从所述流量控制插件的配置信息中读取流量控制参数,其中,所述流量控制参数用于指示目标网关限制的请求报文数量;判断单元,用于根据所述流量控制参数判断是否响应所述请求报文;第三转发单元,用于若响应所述请求报文,将所述请求报文转发至所述目标网关地址。
可选的,所述判断单元包括:获取子单元,用于获取在当前周期内已经转发至目标网关的请求数量;计算子单元,用于读取所述流量控制参数中的单位时间请求数量和请求爆满数量,并将所述单位时间请求数量和所述请求爆满数量的和计算为门限数量;判断子单元,用于判断所述请求数量是否超过所述门限数量;处理子单元,用于若所述请求数量未超过所述门限数量,确定转发所述请求报文;若所述请求数量超过所述门限数量,拒绝转发所述请求报文,并向所述业务请求端返回转发拒绝消息。
可选的,所述装置还包括以下之一:第一配置模块,用于在所述查找模块在内存中调用预存的网关规则表之前,调用目标网关的主机端口配置所述网关规则表;第二配置模块,用于在所述查找模块在内存中调用预存的网关规则表之前,在微服务配置中心的配置页面中创建或更新所述业务受理端的配置文件,在所述配置文件中配置所述网关规则表。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本申请实施例还提供了一种电子设备,图6是本发明实施例的一种电子设备的结构图,如图6所示,包括处理器61、通信接口62、存储器63和通信总线66,其中,处理器61,通信接口62,存储器63通过通信总线66完成相互间的通信,存储器63,用于存放计算机程序;处理器61,用于执行存储器63上所存放的程序时,实现如下步骤:接收业务请求端发送的请求报文;解析所述请求报文中的路由关键字,其中,所述路由关键字用于指示所述请求报文的业务类型;在内存中调用预存的网关规则表,并采用所述网关规则表查找所述路由关键字的目标网关地址,其中,所述网关规则表配置有路由关键字与目标网关地址的映射表;将所述请求报文转发至所述目标网关地址,其中,所述目标网关地址与所述请求报文的业务受理端连接。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的流量的控制方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的流量的控制方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种流量的控制方法,其特征在于,包括:
接收业务请求端发送的请求报文;
解析所述请求报文中的路由关键字,其中,所述路由关键字用于指示所述请求报文的业务类型;
在内存中调用预存的网关规则表,并采用所述网关规则表查找所述路由关键字的目标网关地址,其中,所述网关规则表配置有路由关键字与目标网关地址的映射表;
将所述请求报文转发至所述目标网关地址,其中,所述目标网关地址与所述请求报文的业务受理端连接。
2.根据权利要求1所述的方法,其特征在于,采用所述网关规则表查找所述路由关键字的目标网关地址包括:
读取所述网关规则表中的规则节点集合;
在所述规则节点集合中查找与所述路由关键字匹配的第一规则节点;
若所述规则节点集合中存在与所述路由关键字匹配的第一规则节点,在所述网关规则表中查找与所述第一规则节点对应的第一网关地址;
将所述第一网关地址确定为与所述请求报文匹配的目标网关地址。
3.根据权利要求2所述的方法,其特征在于,在所述规则节点集合中查找与所述路由关键字匹配的第一规则节点包括:
解析所述路由关键字的字段类型;
若所述字段类型为路由路径,在所述规则节点集合中查找与所述路由路径匹配的路由路径规则节点;若所述字段类型为请求头,在所述规则节点集合中查找与所述请求头匹配的请求头规则节点;若所述字段类型为查询参数,在所述规则节点集合中查找与所述查询参数匹配的查询参数规则节点。
4.根据权利要求1所述的方法,其特征在于,将所述请求报文转发至所述目标网关地址包括以下之一:
将所述请求报文转发至第一路由地址,其中,所述第一路由地址为网关集群的主机端口地址,所述网关集群包括多个分布式网关,每个网关通过负载均衡的策略承载业务流量,所述网关集群用于处理同一业务类型的业务流量;
将所述请求报文转发至第二路由地址,其中,所述第二路由地址为共享网关的主机端口地址,所述共享网关用于同时处理多个业务类型的业务流量。
5.根据权利要求1所述的方法,其特征在于,将所述请求报文转发至所述目标网关地址包括:
获取所述网关规则表中的流量控制插件;
从所述流量控制插件的配置信息中读取流量控制参数,其中,所述流量控制参数用于指示目标网关限制的请求报文数量;
根据所述流量控制参数判断是否响应所述请求报文;
若响应所述请求报文,将所述请求报文转发至所述目标网关地址。
6.根据权利要求5所述的方法,其特征在于,根据所述流量控制参数判断是否响应所述请求报文包括:
获取在当前周期内已经转发至目标网关的请求数量;
读取所述流量控制参数中的单位时间请求数量和请求爆满数量,并将所述单位时间请求数量和所述请求爆满数量的和计算为门限数量;
判断所述请求数量是否超过所述门限数量;
若所述请求数量未超过所述门限数量,确定转发所述请求报文;若所述请求数量超过所述门限数量,拒绝转发所述请求报文,并向所述业务请求端返回转发拒绝消息。
7.根据权利要求1所述的方法,其特征在于,在内存中调用预存的网关规则表之前,所述方法还包括以下之一:
调用目标网关的主机端口配置所述网关规则表;
在微服务配置中心的配置页面中创建或更新所述业务受理端的配置文件,在所述配置文件中配置所述网关规则表。
8.一种流量的控制装置,其特征在于,包括:
接收模块,用于接收业务请求端发送的请求报文;
解析模块,用于解析所述请求报文中的路由关键字,其中,所述路由关键字用于指示所述请求报文的业务类型;
查找模块,用于在内存中调用预存的网关规则表,并采用所述网关规则表查找所述路由关键字的目标网关地址,其中,所述网关规则表配置有路由关键字与目标网关地址的映射表;
转发模块,用于将所述请求报文转发至所述目标网关地址,其中,所述目标网关地址与所述请求报文的业务受理端连接。
9.一种存储介质,其特征在于,所述存储介质包括存储的计算机程序,其中,所述计算机程序运行时执行上述权利要求1至7中任一项所述的方法步骤。
10.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:
存储器,用于存放计算机程序;
处理器,用于通过运行存储器上所存放的程序来执行权利要求1至7中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210883483.9A CN115396513A (zh) | 2022-07-26 | 2022-07-26 | 流量的控制方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210883483.9A CN115396513A (zh) | 2022-07-26 | 2022-07-26 | 流量的控制方法及装置、存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115396513A true CN115396513A (zh) | 2022-11-25 |
Family
ID=84116561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210883483.9A Pending CN115396513A (zh) | 2022-07-26 | 2022-07-26 | 流量的控制方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115396513A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365751A (zh) * | 2019-06-26 | 2019-10-22 | 口碑(上海)信息技术有限公司 | 网关系统的业务处理方法、装置及设备 |
CN111447150A (zh) * | 2020-02-29 | 2020-07-24 | 中国平安财产保险股份有限公司 | 访问请求限流方法、服务器及存储介质 |
US20210006496A1 (en) * | 2018-03-21 | 2021-01-07 | Huawei Technologies Co., Ltd. | Application Programing Interface API Gateway Cluster Control Method and API Gateway Cluster |
CN112671651A (zh) * | 2020-11-17 | 2021-04-16 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN113014664A (zh) * | 2021-03-12 | 2021-06-22 | 京东数科海益信息科技有限公司 | 网关适配方法、装置、电子设备和存储介质 |
CN114500358A (zh) * | 2022-02-14 | 2022-05-13 | 未鲲(上海)科技服务有限公司 | 网关报文分发方法、装置、设备及存储介质 |
-
2022
- 2022-07-26 CN CN202210883483.9A patent/CN115396513A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210006496A1 (en) * | 2018-03-21 | 2021-01-07 | Huawei Technologies Co., Ltd. | Application Programing Interface API Gateway Cluster Control Method and API Gateway Cluster |
CN110365751A (zh) * | 2019-06-26 | 2019-10-22 | 口碑(上海)信息技术有限公司 | 网关系统的业务处理方法、装置及设备 |
CN111447150A (zh) * | 2020-02-29 | 2020-07-24 | 中国平安财产保险股份有限公司 | 访问请求限流方法、服务器及存储介质 |
CN112671651A (zh) * | 2020-11-17 | 2021-04-16 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN113014664A (zh) * | 2021-03-12 | 2021-06-22 | 京东数科海益信息科技有限公司 | 网关适配方法、装置、电子设备和存储介质 |
CN114500358A (zh) * | 2022-02-14 | 2022-05-13 | 未鲲(上海)科技服务有限公司 | 网关报文分发方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110677405B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
EP2949109B1 (en) | Methods, systems, and computer readable media for using a diameter routing agent (dra) to obtain mappings between mobile subscriber identification information and dynamically assigned internet protocol (ip) addresses and for making the mappings accessible to applications | |
CN110995873A (zh) | 网关服务业务接口发现方法、系统、电子设备及存储介质 | |
CN111885216B (zh) | Dns查询方法、装置、设备和存储介质 | |
CN113037761B (zh) | 登录请求的验证方法及装置、存储介质、电子设备 | |
CN112995163A (zh) | 资源访问的鉴权方法及装置、存储介质、电子设备 | |
CN115190062B (zh) | 业务处理方法及装置、电子设备和计算机可读存储介质 | |
CN110213365B (zh) | 基于用户分区的用户访问请求处理方法及电子设备 | |
CN111147468A (zh) | 用户接入方法、装置、电子设备及存储介质 | |
CN114221959A (zh) | 服务共享方法、装置和系统 | |
CN114629912B (zh) | 基于mec的通信传输方法及装置 | |
CN113608865A (zh) | 一种流量控制方法、装置、系统、电子设备及存储介质 | |
CN112751935A (zh) | 请求处理方法、装置、电子设备及存储介质 | |
CN109617817B (zh) | 一种mlag组网的转发表项的生成方法及装置 | |
CN114338809B (zh) | 访问控制方法、装置、电子设备和存储介质 | |
CN111262779A (zh) | 即时通讯中数据的获取方法、装置、服务器及系统 | |
CN114338794B (zh) | 一种服务消息的推送方法、装置、电子设备及存储介质 | |
CN109698869B (zh) | 私网穿越方法、通信节点及存储介质 | |
CN115396513A (zh) | 流量的控制方法及装置、存储介质、电子设备 | |
CN115701145A (zh) | 流量管理方法、装置、设备及计算机可读存储介质 | |
CN114615272A (zh) | 媒体数据转发服务器调度方法和系统 | |
CN113328922A (zh) | 一种跨多局域网的连通方法及装置 | |
CN113676540B (zh) | 一种连接建立方法及装置 | |
CN113596890B (zh) | 通信方法、系统、装置及存储介质 | |
CN113422772B (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 |