背景介绍

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. Vue系列---【.npmrc文件设置私服地址】

    一..npmrc 配置文件的优先级 电脑中有多个 .npmrc 文件,在我们安装包的时候,npm按照如下顺序读取这些配置文件 项目配置文件: /project/.npmrc 用户配置文件:~/.npm ...

  2. doy 20 系统优化

    系统优化 1.yum源的优化 CentOS   base   epel ​自建yum仓库​使用一个较为稳定的仓库​wget -O /etc/yum.repos.d/CentOS-Base.repo h ...

  3. HTML Cookie

    目录 Cookie是什么 Cookie的属性 Cookie的作用域 Domain 属性 Path 属性 SameSite 属性 Cookie密码验证小案例 效果展示 代码 Cookie是什么 HTTP ...

  4. decode procedure

    1  test data preparation 1>  select representative data voice to match real application scenario ...

  5. Delphi中idHttpServer

    Delphi7中测试idHttpServer,自带的idHttpServer 仅放上测试的部分代码,便于自己查看 1 unit Unit1; 2 3 interface 4 5 uses 6 Wind ...

  6. 探究Tomcat

    一.什么是Tomcat? 用来装载javaWeb程序,可以称它为Web容器.是一个运行java的网络服务器,底层是Sochet的一个程序,他也是JSP和Servlet的一个容器. 二.什么要用Tomc ...

  7. Linux(CentOS8) 安装 Docker

    查询当前系统的相关信息 cat /etc/os-release 输入内容如下 校验当前CentOS内核版本 说明:Docker 要求 CentOS 的内核版本,至少高于 3.10 .低于 3.10 的 ...

  8. sql自学记录

    复习 SQL join :用于根据两个或多个表中的列之间的关系,从这些表中查询数据 eg: SELECT Persons.LastName, Persons.FirstName, Orders.Ord ...

  9. SEGGER_RTT_printf()函数添加打印浮点数功能

    SEGGER 的实时传输 (RTT) 是一种用于嵌入式应用程序中交互式用户 I/O 的技术.它以非常高的性能结合了 SWO 和半主机的优势.但是在笔者使用时(RTT v758版本),其暂时不支持浮点数 ...

  10. windows tips

    u启动经典dos工具实现硬盘分区教程 https://jingyan.baidu.com/article/a3f121e4dbe55afc9052bbfe.html?st=2&net_type ...