CN109672563B - 一种网关的配置方法、装置及api网关 - Google Patents
一种网关的配置方法、装置及api网关 Download PDFInfo
- Publication number
- CN109672563B CN109672563B CN201811580419.3A CN201811580419A CN109672563B CN 109672563 B CN109672563 B CN 109672563B CN 201811580419 A CN201811580419 A CN 201811580419A CN 109672563 B CN109672563 B CN 109672563B
- Authority
- CN
- China
- Prior art keywords
- request
- upstream
- rules
- rule
- current
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种网关的配置方法,包括步骤:接收用户发送的请求;将请求依次导入到若干个选择器,判断当前请求是否符合选择器的判定规则,规则包括镜像请求规则、重定向规则、URL重写规则、转发规则中的一个或多个;在符合当前选择器的判定规则后,按照规则对请求进行对应的处理。本发明方法对用户请求进行统一配置管理,可根据选择器的不同规则对请求进行筛选和处理。另外本发明提供网关的装置以及采用上述配置方法的API网关,可实现对请求进行统一入口、处理、统计、展示,具有管理统一、集中处理、配置灵活和实时展示的优点。
Description
技术领域
本发明属于计算机软件开发技术领域,特别涉及一种网关的配置方法、装置及API网关。
背景技术
目前的网关中,针对不同的业务HTTP/HTTPS请求,往往是人工部署不同的配置到负载均衡服务器,或者使用功能不完全的处理系统,来实现不完全的请求处理功能,并且对于请求镜像转发不支持,还需人工使用第三方工具实现。
普遍存在的缺点是:
1、配置分散,不方便批量管理,人工配置容易出错,入口不统一。
2、没有集中的请求统计、展示和配置面板。
3、不支持简易配置各种针对HTTP/HTTPS协议的请求参数,进行请求筛选。
4、无法动态修改配置,生效需要重启服务,影响当前请求。
5、无法根据HTTPS请求的SNI,动态分配域名证书。
6、上游节点不支持实时健康检查,所有上游节点均统一管理。
7、不支持系统本身实现请求镜像转发,并控制镜像倍数。
8、无法对每个请求进行跟踪,掌握其请求后续处理情况。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种网关的配置方法、装置及API网关,从而能够对网关的请求进行统一入口、处理、统计、展示,具有管理统一、集中处理、配置灵活和实时展示的优点。
本发明一方面提供一种网关的配置方法,包括步骤:
接收用户发送的请求;
将请求依次导入到若干个选择器,判断当前请求是否符合选择器的判定规则,所述规则包括但不限于镜像请求规则、重定向规则、URL重写规则、转发规则;
在符合当前选择器的判定规则后,按照规则对请求进行对应的处理。
本发明方法对用户请求进行统一配置管理,可根据选择器的不同规则对请求进行筛选和处理,具有管理统一、集中处理的优点。
优选的,接收到用户发送的请求后,为每个请求生成一追踪ID,并将该追踪ID加入到请求的头文件中。通过设置该追踪ID可以跟踪请求在后端的所有处理情况。
优选的,接收到用户发送的请求后,先判断当前请求是否是HTTPS,如果是则针对域名分配证书,然后将请求导入到选择器,如果不是HTTPS,则直接导入到选择器。从而实现根据HTTPS请求的SNI,动态分配域名证书,更加灵活。
优选的,将请求依次导入到所有的选择器后,一旦当前请求符合了某规则,则按照该规则对请求进行对应的处理,否则,返回服务器错误代码到用户的客户端。
优选的,若当前请求符合镜像请求规则,则将请求发送到服务器端内置的镜像请求模块,该模块根据请求按照镜像倍数进行请求复制,将复制后得到的镜像请求发送到动态上游模块以再转发到服务器后端,将原生请求继续导入到下一个选择器进行处理。
优选的,若当前请求符合转发规则,则将该转发请求发送到动态上游模块以转发到上游后端。
更进一步的,所述动态上游模块将转发请求转发到服务器后端的方法是:
接收转发请求;
获取当前层上游组的所有上游,从中选举一优选上游;
通过该优选上游尝试分发,分发正常则将转发请求发送到上游后端。
更进一步的,从当前层上游组中选举出一优选上游后,根据服务器中更新的各个上游的健康检查状态,判断该优选上游是否健康,如果健康则进行尝试分发,否则,进行下述操作:
访问请求级别的尝试记录,确定该优选上游在这个请求周期内是否超过重试次数,若未超过,则优选上游继续尝试分发;
否则,检查该优选上游是否处于最后层的上游组,如是则直接转发到安全模式的保护上游的后端,若否,则获取下一层上游组,从中再次选举出一新的优选上游,由该新的优选上游重复分发操作。通过上述健康检查的方法,可以保证目的后端的健康状态。
优选的,通过调度算法从某一层上游组的所有上游中选举一优选上游,调度算法采用权重轮询调度算法,或者采用一致性哈希调度算法。
优选的,若当前请求符合URL重写规则,则进行重写,然后将重写后的请求继续导入到下一个选择器进行处理。
优选的,所述配置方法中涉及的所有选择器配置、规则配置的数据,均存储在服务器的内存中,并持久化在数据库中。这样既保证了数据的可靠性,又使得配置可以动态修改,无需重启服务。
优选的,对请求进行日志记录以及统计,并将上述记录和统计信息在一显示面板上予以展示。
本发明另一方面提供一种网关的配置装置,包括:
请求接收模块,用于接收用户发送的请求;
判定模块,用于将请求依次导入到若干个选择器,判断当前请求是否符合选择器的判定规则,所述规则包括但不限于镜像请求规则、重定向规则、重写规则、转发规则;
处理模块,用于在符合当前选择器的判定规则后,按照规则对请求进行对应的处理。
本发明另一方面提供一种API网关,该网关采用上述配置方法。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明方法包括了多种请求的筛选条件、处理方法,并提供对外修改接口,配置集中,可以作为请求的统一入口,方便管理。
2、本发明方法将所有配置数据均存储在内存中,既保证了数据的可靠性,又使得配置可以动态修改,无需重启服务。
3、本发明方法可以集中地进行请求统计,展示。
4、本发明方法通过动态分发证书模块,实现针对SNI中的域名动态分配SSL证书。
5、本发明方法内置镜像请求模块,不借助第三方工具实现请求复制,并且支持镜像倍数。
6、本发明中,动态上游模块采用等级划分,在每一等级中采用权重一致性哈希调度算法选举优选上游。并通过定时主动健康检查和尝试被动健康检查,对目的后端的健康状态有很好的保证。
7、本发明中,请求进入时针对每个请求添加Trace-Id,便于跟踪请求在后端的处理情况。
附图说明
图1是一实施例一种网关的配置方法的流程示意图。
图2是一实施例动态上游模块处理转发请求的流程示意图。
图3是一实施例网关的配置装置的框图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
本实施例提供一种API网关,该网关可以对HTTP/HTTPS请求进行统一入口、处理、统计、展示,其配置方法如图1所示。
S1、接收用户发送的请求。
这里的请求包括但不限于HTTPS、HTTP等。本实施例网关可对多种请求分别进行筛选和处理。
在实施例中,接收到用户发送的请求后,为了便于跟踪请求在后端的所有处理情况,这里为每个请求生成一追踪ID,并将该追踪ID加入到请求的头文件中。在后续想要跟踪时,只需要检索头文件,即可定位该请求的位置,并获得请求的处理状态,便于统一管理。
S2、判断请求的类型。
判断当前请求是否是HTTPS,如果是则针对域名分配证书,然后将请求导入到选择器,如果不是HTTPS,则直接导入到选择器。
S3、通过各个选择器的判定规则,对请求进行处理。
参见图1,本实施例中,判定规则包括镜像请求规则、重定向规则、URL重写规则、转发规则。在初始配置时,管理员将上述几个选择器依次连接,用于后续请求的依次判断处理。在请求处理过程中,管理员可以动态改变请求处理的配置,即增加、减少各种选择器,改变选择器的顺序,增加、减少选择器中的规则,改变选择器中规则的顺序等等,不会中断或影响当前请求的处理。
在处理时,将请求对多个选择器一一进行匹配,若全部不匹配,则直接返回502(服务器错误代码),否则按照最早匹配成功的规则对请求进行对应的处理。以图1所示一种实际的配置方式为例:
S301、判断请求是否符合镜像请求规则,是则将请求发送到服务器端内置的镜像请求模块,该模块可以自主设置镜像倍数,根据需要通过显示面板设置镜像倍数后,该模块根据请求按照镜像倍数进行请求复制,将复制后得到的镜像请求发送到动态上游模块,执行步骤S305;同时,将原生请求继续导入到重定向规则的选择器进行处理。
S302、判断请求是否符合重定向规则,是则对请求返回重定向响应,否则请求导入到URL重写规则的选择器进行处理。
S303、判断请求是否符合URL重写规则,是则进行重写,然后将重写后的请求继续导入到转发规则的选择器进行处理。
S304、判断请求是否符合转发规则,是则将请求转发到动态上游模块,否则返回502(服务器错误代码)。
S305、动态上游通过自身机制转发到后端,然后统计数据到各个计数器。
在本实施例中,动态上游模块处理转发请求的流程如图2所示,包括步骤:
S3051:转发请求进入动态上游模块。初始时获取level 1上游组的所有上游。
S3052:通过调度算法计算选举成功的优选上游。
这里的调度算法可以采用权重轮询调度算法,步骤是:按照权重以循环的方式依次将请求调度到不同的上游,例如有三个上游,权重分别是1,2,3,此时有6个请求访问进来,则第1个请求会分配到上游1,第2、3个请求会分配到上游2,第4、5、6个请求会分配到上游3。
这里的调度算法也可以采用一致性哈希调度算法,步骤是:定义一个hash值范围,使得上游节点根据权重瓜分这个hash值范围,当请求访问进来时,按照指定的哈希key(可以是ip、url或header)算出哈希值,将该请求调度到哈希值所处范围对于的上游,并且当上游节点数量改动时,只会很少地影响请求的调度结果。
S3053:调用程序内存中的主动健康检查状态,查看选举出来的优选上游是否健康,该状态通过程序定时器定时自动更新。
S3054:若优选上游的状态健康正常则进行尝试分发,分发正常则请求转发到上游的后端服务,不正常则执行步骤S3055。
S3055:获取请求级别的尝试记录,确定该优选上游在这个请求周期内是否超过重试次数,若未超过重新执行S3054,判断是否是偶发因素造成状态不正常,重新尝试分发,否则检查该优选上游是否处于最后的上游组,如是则直接转发到安全模式的保护上游的后端,若否则获取下一层上游组,并重新执行步骤S3052。
S3056:成功转发请求到上游的后端程序。
实现上述方法实施例的全部或部分步骤可视为配置装置的各个模块,步骤之间的顺序关系可视为配置装置的各个模块之间的连接关系,该网关的配置装置用于执行本实施例的配置方法,参见图3,所述网关的配置装置包括:
请求接收模块,用于接收用户发送的请求;
判定模块,用于将请求依次导入到若干个选择器,判断当前请求是否符合选择器的判定规则,所述规则包括镜像请求规则、重定向规则、重写规则、转发规则中的一个或多个;
处理模块,用于在符合当前选择器的判定规则后,按照规则对请求进行对应的处理。
为避免重复描述,装置的功能模块以及有益效果参见上述的配置方法的描述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (9)
1.一种网关的配置方法,其特征在于,包括步骤:
接收用户发送的请求;
将请求依次导入到若干个选择器,判断当前请求是否符合选择器的判定规则,所述规则包括但不限于镜像请求规则、重定向规则、URL重写规则、转发规则;
在符合当前选择器的判定规则后,按照规则对请求进行对应的处理,包括:
若当前请求符合镜像请求规则,则将请求发送到服务器端内置的镜像请求模块,该模块根据请求按照镜像倍数进行请求复制,将复制后得到的镜像请求发送到动态上游模块以再转发到服务器后端,将原生请求继续导入到下一个选择器进行处理;
若当前请求符合转发规则,则将该请求发送到动态上游模块以转发到上游后端;
若当前请求符合URL重写规则,则进行重写,然后将重写后的请求继续导入到下一个选择器进行处理。
2.根据权利要求1所述的网关的配置方法,其特征在于,接收到用户发送的请求后,为每个请求生成一追踪ID,并将该追踪ID加入到请求的头文件中;
接收到用户发送的请求后,先判断当前请求是否是HTTPS,如果是则针对域名分配证书,然后将请求导入到选择器,如果不是HTTPS,则直接导入到选择器。
3.根据权利要求1所述的网关的配置方法,其特征在于,所述动态上游模块将转发请求转发到服务器后端的方法是:
接收转发请求;
获取当前层上游组的所有上游,从中选举一优选上游;
通过该优选上游尝试分发,分发正常则将转发请求发送到上游后端。
4.根据权利要求3所述的网关的配置方法,其特征在于,从当前层上游组中选举出一优选上游后,根据服务器中更新的各个上游的健康检查状态,判断该优选上游是否健康,如果健康则进行尝试分发,否则,进行下述操作:
访问请求级别的尝试记录,确定该优选上游在这个请求周期内是否超过重试次数,若未超过,则优选上游继续尝试分发;
否则,检查该优选上游是否处于最后层的上游组,如是则直接转发到安全模式的保护上游的后端,若否,则获取下一层上游组,从中再次选举出一新的优选上游,由该新的优选上游重复分发操作。
5.根据权利要求4所述的网关的配置方法,其特征在于,通过调度算法从某一层上游组的所有上游中选举一优选上游,调度算法采用权重轮询调度算法,或者采用一致性哈希调度算法。
6.根据权利要求1所述的网关的配置方法,其特征在于,将请求依次导入到所有的选择器后,一旦当前请求符合了某规则,则按照该规则对请求进行对应的处理,否则,返回服务器错误代码到用户的客户端。
7.根据权利要求1所述的网关的配置方法,其特征在于,所述配置方法中涉及的所有选择器配置、规则配置的数据,均存储在服务器的内存中,并持久化在数据库中;
对请求进行日志记录以及统计,并将上述记录和统计信息在一显示面板上予以展示。
8.一种网关的配置装置,其特征在于,包括:
请求接收模块,用于接收用户发送的请求;
判定模块,用于将请求依次导入到若干个选择器,判断当前请求是否符合选择器的判定规则,所述规则包括但不限于镜像请求规则、重定向规则、重写规则、转发规则;
处理模块,用于在符合当前选择器的判定规则后,按照规则对请求进行对应的处理,包括:
若当前请求符合镜像请求规则,则将请求发送到服务器端内置的镜像请求模块,该模块根据请求按照镜像倍数进行请求复制,将复制后得到的镜像请求发送到动态上游模块以再转发到服务器后端,将原生请求继续导入到下一个选择器进行处理;
若当前请求符合转发规则,则将该请求发送到动态上游模块以转发到上游后端;
若当前请求符合URL重写规则,则进行重写,然后将重写后的请求继续导入到下一个选择器进行处理。
9.一种API网关,其特征在于,该网关采用权利要求1-7任一项所述配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811580419.3A CN109672563B (zh) | 2018-12-24 | 2018-12-24 | 一种网关的配置方法、装置及api网关 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811580419.3A CN109672563B (zh) | 2018-12-24 | 2018-12-24 | 一种网关的配置方法、装置及api网关 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109672563A CN109672563A (zh) | 2019-04-23 |
CN109672563B true CN109672563B (zh) | 2021-10-19 |
Family
ID=66147106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811580419.3A Active CN109672563B (zh) | 2018-12-24 | 2018-12-24 | 一种网关的配置方法、装置及api网关 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109672563B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222242B (zh) * | 2019-05-21 | 2022-10-11 | 无线生活(杭州)信息科技有限公司 | 配置追踪方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499971A (zh) * | 2009-03-09 | 2009-08-05 | 天津大学 | 服务网络性能优化系统 |
CN106850782A (zh) * | 2017-01-17 | 2017-06-13 | 泰康保险集团股份有限公司 | 用于日志处理的方法和系统 |
CN106911804A (zh) * | 2017-04-21 | 2017-06-30 | 合肥联宝信息技术有限公司 | 一种镜像连接方法和电子设备 |
CN107623661A (zh) * | 2016-07-15 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 阻断访问请求的系统、方法及装置,服务器 |
CN108933794A (zh) * | 2018-08-22 | 2018-12-04 | 广州视源电子科技股份有限公司 | 一种加入企业策略的方法、装置、设备及服务器 |
-
2018
- 2018-12-24 CN CN201811580419.3A patent/CN109672563B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499971A (zh) * | 2009-03-09 | 2009-08-05 | 天津大学 | 服务网络性能优化系统 |
CN107623661A (zh) * | 2016-07-15 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 阻断访问请求的系统、方法及装置,服务器 |
CN106850782A (zh) * | 2017-01-17 | 2017-06-13 | 泰康保险集团股份有限公司 | 用于日志处理的方法和系统 |
CN106911804A (zh) * | 2017-04-21 | 2017-06-30 | 合肥联宝信息技术有限公司 | 一种镜像连接方法和电子设备 |
CN108933794A (zh) * | 2018-08-22 | 2018-12-04 | 广州视源电子科技股份有限公司 | 一种加入企业策略的方法、装置、设备及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN109672563A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934868B2 (en) | Systems and methods for scheduling tasks | |
US10754631B2 (en) | Tenant upgrade analytics | |
CN105099988B (zh) | 用于支持灰度发布的方法、访问方法以及装置和系统 | |
US10853046B2 (en) | Deployment of software applications on server clusters | |
US9755990B2 (en) | Automated reconfiguration of shared network resources | |
US9548886B2 (en) | Help desk ticket tracking integration with root cause analysis | |
CN108965381A (zh) | 基于Nginx的负载均衡实现方法、装置、计算机设备和介质 | |
US8447757B1 (en) | Latency reduction techniques for partitioned processing | |
CN109478266A (zh) | 对于数据库供应的资源分配 | |
CN104333567B (zh) | 采用安全即服务的web缓存 | |
CN109240830A (zh) | 基于服务器健康以及客户端信息的应用智能请求管理 | |
US11275667B2 (en) | Handling of workload surges in a software application | |
US11347808B1 (en) | Dynamically-adaptive bloom-filter | |
US10642585B1 (en) | Enhancing API service schemes | |
US11250420B2 (en) | Transferring data using a smart reconciliation system | |
US9565079B1 (en) | Holographic statistics reporting | |
JP5269394B2 (ja) | データベース振分装置、データベース振分方法、プログラム、および記録媒体 | |
US11360778B2 (en) | Dynamic insights extraction and trend prediction | |
CN114328132A (zh) | 外部数据源的状态监控方法、装置、设备和介质 | |
US10802944B2 (en) | Dynamically maintaining alarm thresholds for software application performance management | |
CN109672563B (zh) | 一种网关的配置方法、装置及api网关 | |
US10936968B2 (en) | Ticket routing | |
US7698176B2 (en) | Method, system, and computer-readable medium for updating inventory data in an inventory management system | |
CN110442455A (zh) | 一种数据处理方法及装置 | |
CN115098807A (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 |