背景介绍

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. ansible 详解基本篇

    Ansible是一种常用的自动运维化工具,基于python开发,分布式,无需客户端,轻量级,配置语言采用YAML. 安装方式yum yum install epel-release&& ...

  2. char和int的类型转换

    char类型是16位的,底层采用unicode编码保存.char类型是可以直接赋值给int类型的,因为是16位到32位低到高.举个例子比如int i='1';打印i的值是49.char类型跟int类型 ...

  3. Core_DataCollect BacNet说明

    /* * BACnet_AI 0 模拟输入.定义一个标准对象,其属性表示模拟输入的外部可见特征. BACnet_AO 1 模拟输出.定义一个标准对象,其属性表示模拟输出的外部可见特征. BACnet_ ...

  4. centos7 安装 elasticsearch 7.15

    下载 elasticsearch wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linu ...

  5. js两个数组对象合并去重

  6. pytorch代码练习

    pytorch练习 使用torch.Tensor定义数据 , tensor的意思是张量,是数字各种形式的总称,可以定义数.向量.二维数组和张量. import torch # 可以是一个数 x = t ...

  7. 龙中华著《Spring Boot实战派》读书笔记之基础篇

    第四章 Spring Boot 基础 4.1 了解Spring Boot 项目结构 src/main/java //入口类,等 src/main/resources //静态文件和配置文件 src/t ...

  8. [整理]String用法/转换substring

    substring(a)从a开始 substring(a,b) [a,b] s=123456789 s.substring(3):456789 s.substring(0,3):1234

  9. 多线程post

    async Task<long> post() { var stopwatch = new Stopwatch(); stopwatch.Start(); var client = new ...

  10. Java压缩音频视频工具类

    /** * TODO * * @author Administrator * @version 1.0 * @date 2021/11/5 16:55 */ public class vedio { ...