CN109218212B - 一种通过api网关对流量进行限制的方法 - Google Patents
一种通过api网关对流量进行限制的方法 Download PDFInfo
- Publication number
- CN109218212B CN109218212B CN201811020872.9A CN201811020872A CN109218212B CN 109218212 B CN109218212 B CN 109218212B CN 201811020872 A CN201811020872 A CN 201811020872A CN 109218212 B CN109218212 B CN 109218212B
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- api gateway
- current limiting
- terminal
- 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
- 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/20—Traffic policing
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种通过API网关对流量进行限制的方法,包括步骤:A.API网关为注册的微服务构建列表数据结构;B.API网关对每个微服务接口配置限流策略;C.根据步骤B的限流策略构建限流过滤模块;D.API网关启动限流过滤模块,并根据限流模块的输出结果决定是否响应终端的请求。本发明的方法中,通过配置限流过滤模块及限流策略集,使得API网关可以根据用户终端的实际访问情况,对微服务访问的流量进行灵活控制,完全满足实际业务的复杂需求。
Description
技术领域
本发明涉及计算机软件的分布式系统技术领域,特别涉及一种通过API网关对流量进行限制的方法。
背景技术
随着移动互联网的不断深入,越来越多的公司和企业逐渐开始面向互联网,并且把面向客户的服务和业务也迁移到线上。在开发这些线上业务时,随着客户数量的不断增多,业务平台的架构也在不断地变化演进。从早期的单体应用架构逐渐转变为微服务架构,集群和分布式也成为了标配的技术。
在构建微服务架构的基础平台的过程中,API(Application ProgrammingInterface)网关是必不可少的核心组件之一。API网关为一组微服务提供统一的接口,以便客户端无需知道微服务内部的所有细节。
在API网关可以对后端微服务接口的访问进行限流,但是目前业界通常的解决方法是使用计数器,终端每对微服务接口进行了一次访问,计数器的计数就加一,当计数器的计数达到预设的阀值时就拒绝用户的访问服务。这种限流方式较为单一,不能完全满足业务平台的复杂需求。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种通过API网关对流量进行限制的方法,使用限流过滤模块并结合限流策略集,使得API网关可以根据用户终端的实际访问情况,对微服务访问的流量进行灵活控制,完全满足实际业务的复杂需求。
为了达到上述的技术效果,本发明采取以下技术方案:
一种通过API网关对流量进行限制的方法,适用于采用了集群和/或分布式设计的系统,包括以下步骤:
A.API网关为注册的微服务构建列表数据结构;
B.API网关对每个微服务接口配置限流策略;
C.根据步骤B的限流策略构建限流过滤模块;
D.API网关启动限流过滤模块,并根据限流模块的输出结果决定是否响应终端的请求。
进一步地,所述微服务为已注册到API网关且面向终端用户对外开放服务的微服务,且每个微服务均有独立的命名或微服务ID。
进一步地,所述列表数据结构由若干元素项构成,一个所述元素项的值对应一个微服务的命名或微服务ID。
进一步地,所述限流策略是单一策略或多种策略的组合,且每个策略都对应有一个相应的算法。
进一步地,所述单一策略为每秒允许访问的最大次数N1或单个终端IP在M1秒内允许访问的最大次数N2或给定IP地址段的终端IP在M2秒内允许访问的最大次数N3。
进一步地,所述限流过滤模块中设有逻辑运算单元、信息采集单元及决策输出单元,逻辑运算单元分别与信息采集单元及决策输出单元相连;
所述逻辑运算单元根据一系列逻辑运算规则构成的规则集合进行逻辑运算,所述信息采集单元用于采集终端的信息及该终端要访问的微服务的信息,所述决策输出单元用于输出与逻辑运算单元的运算结果对应的响应决定。
进一步地,所述规则集合是限流策略中涉及的算法的集合。
进一步地,所述信息采集单元采集的信息包括:终端IP、终端用户ID、终端用户名、微服务ID、和/或微服务接口名。
进一步地,所述决策输出单元输出的响应决定为允许访问或拒绝访问。
本发明与现有技术相比,具有以下的有益效果:
本发明的通过API网关对流量进行限制的方法中,通过配置限流过滤模块及限流策略集,使得API网关可以根据用户终端的实际访问情况,对微服务访问的流量进行灵活控制,完全满足实际业务的复杂需求。
附图说明
图1是本发明的通过API网关对流量进行限制的方法的流程示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
如图1所示,一种通过API网关对流量进行限制的方法,可应用于微服务架构中,适用于分布式计算平台、云计算平台等数据中心,该方法主要包括以下步骤:
步骤101,API网关为注册的微服务构建列表数据结构。
所述的微服务为注册到API网关且要面向终端用户对外开放服务的微服务。
所述的列表数据结构为根据每一个微服务的命名或者服务ID作为列表数据结构的元素项的值。
步骤102,API网关对每个微服务接口配置限流策略。
所述的限流策略可以是多种策略的组合也可以是单一策略。
其中,单一策略可以是每秒允许访问的最大次数N1或单个终端IP在M1秒内允许访问的最大次数N2或给定IP地址段(如从P1到P2)在M2秒内允许访问的最大次数N3等。每一种限流策略对应一个相应的算法。作为优选,所述的限流策略的规则支持扩展,可根据实际需要继续添加。
步骤103,根据步骤102的限流策略构建限流过滤模块。
所述的限流过滤模块中设有逻辑运算单元、信息采集单元及决策输出单元,逻辑运算单元分别与信息采集单元及决策输出单元相连;
所述逻辑运算单元根据一系列逻辑运算规则构成的规则集合进行逻辑运算,所述信息采集单元用于采集终端的信息及该终端要访问的微服务的信息,所述决策输出单元用于输出与逻辑运算单元的运算结果对应的响应决定。其中,所述规则集合是限流策略中涉及的算法的集合。
所述信息采集单元采集的信息包括:终端的IP地址、终端用户ID、终端用户名、微服务ID、微服务接口名等信息中至少一个。
决策输出单元输出的响应决定即限流过滤模块的输出信息,本实施例中,响应决定为Y或N,其中Y表示允许访问,N表示拒绝访问。
步骤104,API网关启动限流过滤模块,并根据限流模块的决策输出单元输出的响应决定,决定是让后端微服务去响应终端的请求,还是直接返回代码404拒绝服务,若决策输出单元输出的响应决定为Y则让后端微服务去响应终端的请求,若决策输出单元输出的响应决定为N,则直接向终端返回代码404拒绝服务。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (5)
1.一种通过API网关对流量进行限制的方法,适用于采用了集群和/或分布式设计的系统,其特征在于,包括以下步骤:
A.API网关为注册的微服务构建列表数据结构;所述微服务为已注册到API网关且面向终端用户对外开放服务的微服务,且每个微服务均有独立的命名或微服务ID;所述列表数据结构由若干元素项构成,一个所述元素项的值对应一个微服务的命名或微服务ID;
B.API网关对每个微服务接口配置限流策略;所述限流策略是单一策略或多种策略的组合,且每个策略都对应有一个相应的算;所述单一策略为每秒允许访问的最大次数N1或单个终端IP在M1秒内允许访问的最大次数N2或给定IP地址段的终端IP在M2秒内允许访问的最大次数N3;
C.根据步骤B的限流策略构建限流过滤模块;
D.API网关启动限流过滤模块,并根据限流模块的输出结果决定是否响应终端的请求。
2.根据权利要求1所述的一种通过API网关对流量进行限制的方法,其特征在于,所述限流过滤模块中设有逻辑运算单元、信息采集单元及决策输出单元,逻辑运算单元分别与信息采集单元及决策输出单元相连;
所述逻辑运算单元根据一系列逻辑运算规则构成的规则集合进行逻辑运算,所述信息采集单元用于采集终端的信息及该终端要访问的微服务的信息,所述决策输出单元用于输出与逻辑运算单元的运算结果对应的响应决定。
3.根据权利要求2所述的一种通过API网关对流量进行限制的方法,其特征在于,所述规则集合是限流策略中涉及的算法的集合。
4.根据权利要求2所述的一种通过API网关对流量进行限制的方法,其特征在于,所述信息采集单元采集的信息包括:终端IP、终端用户ID、终端用户名、微服务ID、和/或微服务接口名。
5.根据权利要求2所述的一种通过API网关对流量进行限制的方法,其特征在于,所述决策输出单元输出的响应决定为允许访问或拒绝访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811020872.9A CN109218212B (zh) | 2018-09-03 | 2018-09-03 | 一种通过api网关对流量进行限制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811020872.9A CN109218212B (zh) | 2018-09-03 | 2018-09-03 | 一种通过api网关对流量进行限制的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109218212A CN109218212A (zh) | 2019-01-15 |
CN109218212B true CN109218212B (zh) | 2022-05-13 |
Family
ID=64986786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811020872.9A Active CN109218212B (zh) | 2018-09-03 | 2018-09-03 | 一种通过api网关对流量进行限制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109218212B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981757B (zh) * | 2019-03-13 | 2022-07-08 | 青岛特来电新能源科技有限公司 | 一种面向小规模微服务架构的api网关负载均衡方法 |
CN110535777B (zh) * | 2019-08-12 | 2022-07-12 | 新华三大数据技术有限公司 | 访问请求控制方法、装置、电子设备以及可读存储介质 |
CN111131397B (zh) * | 2019-12-02 | 2022-09-30 | 京东科技信息技术有限公司 | 应用管理方法及系统、网关平台、服务端、存储介质 |
CN111600807A (zh) * | 2020-04-14 | 2020-08-28 | 网宿科技股份有限公司 | 一种基于api网关设备的流量控制方法和系统 |
CN111817976B (zh) * | 2020-07-16 | 2023-04-25 | 浙江百应科技有限公司 | 一种流量自适应限流系统及其控制方法 |
CN112333167A (zh) * | 2020-10-27 | 2021-02-05 | 北京聚通达科技股份有限公司 | 一种统一认证系统 |
CN112437006B (zh) * | 2020-11-20 | 2023-03-24 | 北京百度网讯科技有限公司 | 基于api网关的请求控制方法、装置、电子设备和存储介质 |
CN112953840A (zh) * | 2021-01-27 | 2021-06-11 | 上海金仕达成括信息科技有限公司 | 一种限流控制方法、网关设备及限流控制系统 |
CN113259492B (zh) * | 2021-07-07 | 2021-12-10 | 天聚地合(苏州)数据股份有限公司 | 服务请求转发方法及系统 |
CN114760250B (zh) * | 2022-03-18 | 2023-11-03 | 福建天晴数码有限公司 | 一种服务网关通过分层限流保障高可用的方案及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375472A (zh) * | 2016-09-29 | 2017-02-01 | 北京三快在线科技有限公司 | 访问请求处理方法、装置和服务器 |
US9667704B1 (en) * | 2014-04-26 | 2017-05-30 | Google Inc. | System and method for classifying API requests in API processing systems using a tree configuration |
CN108306874A (zh) * | 2018-01-29 | 2018-07-20 | 口碑(上海)信息技术有限公司 | 服务接口访问限流方法及装置 |
CN108416591A (zh) * | 2018-02-28 | 2018-08-17 | 四川新网银行股份有限公司 | 一种金融交易中通过api接口实现交易主动限流的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569332B2 (en) * | 2014-02-03 | 2017-02-14 | Apigee Corporation | System and method for investigating anomalies in API processing systems |
-
2018
- 2018-09-03 CN CN201811020872.9A patent/CN109218212B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9667704B1 (en) * | 2014-04-26 | 2017-05-30 | Google Inc. | System and method for classifying API requests in API processing systems using a tree configuration |
CN106375472A (zh) * | 2016-09-29 | 2017-02-01 | 北京三快在线科技有限公司 | 访问请求处理方法、装置和服务器 |
CN108306874A (zh) * | 2018-01-29 | 2018-07-20 | 口碑(上海)信息技术有限公司 | 服务接口访问限流方法及装置 |
CN108416591A (zh) * | 2018-02-28 | 2018-08-17 | 四川新网银行股份有限公司 | 一种金融交易中通过api接口实现交易主动限流的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109218212A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218212B (zh) | 一种通过api网关对流量进行限制的方法 | |
CN109218281B (zh) | 基于意图的网络安全策略修改 | |
US11757872B2 (en) | Contextual and risk-based multi-factor authentication | |
US10887306B2 (en) | Authenticating an unknown device based on relationships with other devices in a group of devices | |
US9038134B1 (en) | Managing predictions in data security systems | |
US12015596B2 (en) | Risk analysis using port scanning for multi-factor authentication | |
US11388175B2 (en) | Threat detection of application traffic flows | |
KR20160065923A (ko) | 클러스터링에 기반한 매핑과 라우팅을 위한 시스템 및 방법 | |
JP2014086083A (ja) | ネットワークアクセス及び受付制御のためのソーシャルグラフの利用 | |
US20220166795A1 (en) | Defense of targeted database attacks through dynamic honeypot database response generation | |
JP2013503375A (ja) | アクセス制御リストの変更 | |
CN113765982A (zh) | 一种请求响应方法、装置、系统、服务器和存储介质 | |
US11563741B2 (en) | Probe-based risk analysis for multi-factor authentication | |
US20210312271A1 (en) | Edge ai accelerator service | |
CN109218278B (zh) | 安全规则的动态实现 | |
US20200092322A1 (en) | VALIDATING COMMANDS FOR HACKING AND SPOOFING PREVENTION IN AN INTERNET OF THINGS (IoT) COMPUTING ENVIRONMENT | |
US20210326294A1 (en) | Edge component redirect for iot analytics groups | |
CN106375334A (zh) | 一种分布式系统的认证方法 | |
US10764399B2 (en) | Customized web services gateway | |
US20130007866A1 (en) | Migration across authentication systems | |
US9985980B1 (en) | Entropy-based beaconing detection | |
US11418515B2 (en) | Multi-vendor support for network access control policies | |
US10599680B2 (en) | Reduction of volume of reporting data using multiple datasets | |
CN110505186A (zh) | 一种安全规则冲突的识别方法、识别设备及存储介质 | |
US20210286898A1 (en) | Dataset origin anonymization and filtration |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200114 Address after: 610000 Chengdu City, Sichuan Province, China (Sichuan) Free Trade Pilot Area, No. 199 Tianfu Fourth Street, Chengdu High-tech Zone, 33 floors Applicant after: Panovasic Co., Ltd. Address before: 621000 Mianyang province high tech Zone, East Hing Road, No. 35 cotton Applicant before: Sichuan Changhong Electrical Appliance Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |