背景介绍

Apinto是一款高性能、可扩展、易维护的API网关。
Apinto网关基于GO语言模块化开发,5分钟极速部署,配置简单、易于维护,支持集群与动态扩容,企业级开箱即用。Apinto除了提供丰富的网关插件外,还将提供监控告警、用户角色等企业插件,同时支持自定义网关插件和可扩展企业插件,满足我们企业的定制化需求。
Apinto支持代理外部流量,转发给内部服务,也支持内部服务之间的通信代理
 

需求痛点描述

在现代互联网应用中,网关是连接外部网络和内部服务的重要组件。然而,随着用户数量和请求量的不断增长,网关面临着诸多挑战,其中之一就是如何有效地限制请求流量,以保证系统的稳定性和可靠性。
对于企业而言,如果没有一个可靠的限流策略,将会面临着请求过载、服务崩溃等诸多问题,从而影响用户体验和业务收益。因此,开发一个高效、灵活的网关限流策略已经成为了现代企业在网关应用中必须面对的一个重要痛点。
 

功能介绍

在Apinto中,我们将限流策略称之为流量策略。这种策略不仅可以限制请求次数,还能够控制请求的流量大小。流量策略具有高度的定制化,可以针对应用、API、上游服务、IP等进行限流,为您的应用提供最优质的服务体验。
 

配置步骤

为了保护系统安全,我们需要设置一个流量拦截策略来阻止某个IP地址的恶意请求。
根据策略,每个IP地址在1分钟内最多只能请求1次。若请求次数超过限制,系统将返回一个特定的提示信息,其中包含如下内容:
 
 
{
"msg":"很抱歉,您的IP已被限制,请稍候再试!"
}
 

新建策略

我们需要对填写的IP进行筛选,以确定需要进行限流的IP。在进行限流时,我们可以选择将限流纬度设置为IP,这意味着该IP发起的任何API请求都会被计入限流次数。
 
如果我们将限流纬度设置为IP和API,那么每当该IP向某个API发送请求时,将会被视为一次单独的计算。

发布策略

测试结果

总结

Apinto网关开箱即用,整个过程仅用2个小时就能快速入门,至于其他功能后续再进行研究!
喜欢或感兴趣的小伙伴们赶紧去下载安装体验吧!
为了支持Apinto团队提供更好的开源体验,记得fork一下噢。
开源地址:https://github.com/eolinker/apinto

社区

开源Apinto网关-流量策略的更多相关文章

  1. 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍

    微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍 一.为什么会有 API Gateway 网关 随着微服务架构的流行,很多公司把原有的单 ...

  2. 微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍

    微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍 上一篇关于网关的文章: 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Ngi ...

  3. 开源API网关,你选对了么?

    开源API网关,你选对了么? api网关的本质 不用扯那么多,也不用画图,一句话说清楚 api网关:流量总入口,得以集中控制! 就这么简单 api网关协议上最基本要支持HTTP 和 WebSocket ...

  4. 五种开源API网关实现组件对比

    五种开源API网关实现组件对比     API 网关一些实现 使用一个组件时,尤其是这种比较流行的架构,组件肯定存在开源的,我们不必自己去从零开始去实现一个网关,自己开发一个网关的工作量是相当可观的, ...

  5. .NET Core开源API网关 – Ocelot中文文档

    Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...

  6. Netflix正式开源其API网关Zuul 2

    5 月 21 日,Netflix 在其官方博客上宣布正式开源微服务网关组件 Zuul 2.Netflix 公司是微服务界的楷模,他们有大规模生产级微服务的成功应用案例,也开源了相当多的微服务组件(详见 ...

  7. Netflix正式开源其API网关Zuul 2--转

    微信公众号:聊聊架构 5 月 21 日,Netflix 在其官方博客上宣布正式开源微服务网关组件 Zuul 2.Netflix 公司是微服务界的楷模,他们有大规模生产级微服务的成功应用案例,也开源了相 ...

  8. Pyhton开源框架(加强版)

    info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...

  9. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  10. API 网关知识看这篇就足够了!

    本文已经收录自 JavaGuide (60k+ Star[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.) 本文授权转载自:https://github.com/java ...

随机推荐

  1. Java中String相关知识

    String 1.String概述 String代表字符串,Java程序中所有的字符串文字(例如'abc")都被实现为此类的实例,也就是说,Java中所有的双引号字符串都是String类的对 ...

  2. 十大经典排序之计数排序(C++实现)

    计数排序 核心思想:计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中. 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数. 思路: 找出待排序的数组中最大和 ...

  3. oracle 将以逗号分隔的列拆成多行的的方法

    原表如下 select * from hs_acct.custattach a where a.client_id='888827395'; 将列拆分成多行的语句 select * from ( -- ...

  4. 用appium来操作模拟器

    1 import time 2 from appium import webdriver 3 from selenium.webdriver.common.by import By 4 from se ...

  5. delphi 给 Timage 加上滚动条方法

    delphi Timage 加上滚动条的方法 1:将  Timage 放入 TScrollBox内,即   [1]设image1.parent:= ScrollBox1;   [2]在Object I ...

  6. little bug

    1 python script can be run in shell console while not in calling shell scripts wfile = codecs.open(n ...

  7. Nginx重启操作

    1.杀掉Nginx进程 killall nginx 2.启动Nginx /usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/ng ...

  8. __declspec(dllimport) 和 __declspec(dllexport)的使用详解、以及 XX_API 的含义

    1. C++代码里调用别人的库.或者写库给别人用.大概有如下的方法(只讨论windows系统的情况): ---- a) 提供头文件 h . 静态库 lib  -- > 静态链接 ---- b) ...

  9. mergehex tools安装

    (1)nRF5x command line tools包括Jlink驱动以及Nordic自己开发的一些命令行工具,具体包括Jlink驱动,nrfjprog,nrfutil以及mergehex等. 下载 ...

  10. lc.59 螺旋矩阵 II

    题目描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix . 示例 输入:n = 3 输出:[[1,2,3],[8,9, ...