背景介绍

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

社区

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐