背景介绍

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、react配置gzip打包后,删除源文件deleteOriginalAssets: true,nginx需要的配置

    1.删除源文件后,配置了gzip,当配置gzip删除源文件后,解决前端history问题,就会出现所有的都返回html,请求js.css也会返回html,页面会报错,如下配置即可 location / ...

  2. sqlite3 一条语句替换全表某个字符字段中的某个字符串

    update not_match_files set policy_id_tms = replace(policy_id_tms, substr(policy_id_tms,instr(policy_ ...

  3. k8s利用endpoints和service访问外部服务

    一.原理解析 在k8s集群中我们通过创建service去访问对应pod内的服务,而在创建service的时候会同时创建一个与service同名的endpoints对象,endpoints与pod实际建 ...

  4. python3GUI--200行代码写一个上课点名程序(附源码)

    @ 目录 一.准备工作 1.Tkinter 2.PIL 二.预览 1.启动 2.开始点名-顺序点名 3.开始点名-随机点名 4.手动加载人名单 5.开始点名-顺序点名-Pyqt5版本 6.人名单格式 ...

  5. python-文件内容操作

    1.按文件中数据的组织形式把文件分为文本文件和二进制文件两类. 文本文件:文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符'\n'结尾.常规字符串是指记事本或其他文本编辑器能正常显示.编 ...

  6. 当MYSQL报错时

    输入mysqld  --console查看错误 针对error行进行排查

  7. 6、jmeter的配置元件:参数化--CSV文件

    1.参数化一些数据,就需要用到csv文件 Filename:文件位置和文件名 (和jmeter同一个目录就不需要写哪个盘 直接写文件名字就可以了) File  encoding:编码 Variable ...

  8. 删除oracle

    完全卸载oracle11g步骤: 1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务. 2. 开始->程序->Oracle - OraHo ...

  9. 使用hugo在gitee上写blog

    1. 安装hugo 1)下载 Hugo Releases,选择hugo_xxx_Windows-64bit.zip(xxx位版本). 2)设置路径 我的电脑->属性->高级系统设置-> ...

  10. day48-Mysql安装文件结构及SQL常用语句

    1.安装文件结构 bin--mysql.exe 客户端运行程序: mysqld.exe 服务端运行程序:  data--数据库.数据表等文件 注:修改配置文件后需要重启服务端 2.常用SQL语句 1) ...