美文网首页
API网关(5) --限流

API网关(5) --限流

作者: 沉沦2014 | 来源:发表于2019-01-16 11:33 被阅读14次

1.使用场景及需求

在高并发场景下,限流往往是控制服务器负载压力的一个可选方案,而在Spring Cloud Zuul上实现限流只需要编写一个过滤器就可以实现

备注:

  • 这里的限流是限制单位时段内对某个微服务或API的最大请求数,控制的是接受请求的速率
  • 信号量不同,信号量限制的是任意时间应用的可接受的最大请求数,当请求结束,该请求持有的信号量会相应释放

2.本地网关限流(限流计数器保存在网关内存)

在这种场景下,限流计数器使用Google Guava提供的工具RateLimiter。RateLimiter是令牌桶限流算法的一个封装实现,具体可以自行查阅

3.分布式限流(限流计数器保存在Redis)

此方案使用redis的缓存失效机制实现限流计数器,但网关需要依赖redis,每接受一个请求就要去redis查计数器,极大增加了时间成本,故不推荐使用

3.1 实现逻辑

一个微服务(或RESTApi)对应redis中的一个KV对,K值存储微服务的serviceId,V值存储该微服务的剩余可调用次数,请求每调用一次,计数器增加1,若在缓存失效时间内计数器未超过阀值,则可以处理任务。注意:必须设置KV对的缓存失效时间,否则就变成了信号量限制请求了

相关文章

  • API网关(5) --限流

    1.使用场景及需求 在高并发场景下,限流往往是控制服务器负载压力的一个可选方案,而在Spring Cloud Zu...

  • .Netcore 2.0 Ocelot Api网关教程(7)-

    本文介绍Ocelot中的限流,限流允许Api网关控制一段时间内特定api的总访问次数。限流的使用非常简单,只需要添...

  • 微服务网关层

    API网关是所有客户端的统一入口。路由服务可以被用于很多目的,例如日志、限流、认证,从而做到应用无感知。API网关...

  • Kong网关+Konga UI配置使用

    概述 Kong:API网关或API中间件,可通过插件轻松扩展功能,如鉴权、限流、监控等。 Konga:Kong的管...

  • 关于API网关(四)——限流

    什么是流量限制 通俗的说,流量控制就是控制用户请求的策略,主要包括:权限、限流、流量调度。权限上一篇已经讲过了,这...

  • .NET Core + Ocelot:API 网关

    关于 API 网关的作用,核心是 API 请求的收口及控制,如:鉴权、限流、熔断、数据缓存 等都是开发中常见的需求...

  • 37.网关限流-路由维度

    网关限流 网关是所有请求的公共入口,所以可以在网关进行限流,而且限流的方式也很多,我们本次采用的前面学过的Sent...

  • Soul网关限流插件Sentinel和Resilience4J扫

    Soul网关限流插件Sentinel和Resilience4J扫盲 Soul网关限流插件Sentinel扫盲 首先...

  • 开放API网关实践(三) —— 限流

    如何设计实现一个轻量的开放API网关之限流文章地址: https://blog.piaoruiqing.com/b...

  • api网关安全与限流算法

    Nginx限速模块初探 这篇文章解析得很清晰了。记录一下几个关键点: nginx使用的是漏桶算法 核心的代码是这一...

网友评论

      本文标题:API网关(5) --限流

      本文链接:https://www.haomeiwen.com/subject/lqapdqtx.html