当前位置: 首页 > news >正文

上传的网站打不开网站首页qq在线咨询js

上传的网站打不开,网站首页qq在线咨询js,网页开发定制,宁波做网站软件目录 RequestRateLimiterGatewayFilterFactory令牌桶算法实现限流 RequestRateLimiterGatewayFilterFactory Spring Cloud Gateway 内置了一个限流功能的过滤器工厂,那就是RequestRateLimiterGatewayFilterFactory ,它使用 Redis 和 Lua 脚本实现令牌桶…

目录

    • RequestRateLimiterGatewayFilterFactory
    • 令牌桶算法
    • 实现限流

RequestRateLimiterGatewayFilterFactory

Spring Cloud Gateway 内置了一个限流功能的过滤器工厂,那就是RequestRateLimiterGatewayFilterFactory ,它使用 Redis 和 Lua 脚本实现令牌桶算法的方式进行限流,允许你根据不同的规则(如 IP、URL、参数等)来限制请求的频率,可以根据访问速率和令牌桶容量来限制路由的访问。

令牌桶算法

令牌桶算法是一种常用的流量控制算法,常用于限制对某个资源或服务的并发访问数或请求速率。该算法基于一个固定容量的令牌桶,每个请求需要消耗一个令牌才能被处理,当令牌桶为空时,则拒绝请求或将请求放入等待队列中。同时,令牌桶会以一定的速率生成令牌。

令牌桶算法的实现通常涉及两个参数:令牌生成速率和令牌桶容量。令牌生成速率指的是每秒钟向令牌桶中添加的令牌数量,令牌桶容量指的是令牌桶最多能存储的令牌数量。

例如,如果令牌生成速率为10,令牌桶容量为20,如果令牌桶为空时,则每秒钟最多可以处理10个请求,当令牌桶满的时候,则每秒可以额外处理多20个请求。

令牌桶算法优点

  1. 平滑限流:令牌桶算法可以平滑地限制流量,避免突发限流的情况。它能够在一段时间内平均处理请求流量,而不是对每个请求进行严格限制。

  2. 适应突发流量:令牌桶算法能够适应突发流量的情况,例如在互联网应用中常见的用户突然涌入的情况。由于令牌桶可以存储一定数量的令牌,因此可以应对短时间内的流量激增,而不会导致流量瓶颈或系统过载。

  3. 可配置性:令牌桶算法的参数(如令牌生成速率、令牌桶容量等)可以根据实际需求进行调整,以满足不同的限流需求。这种可配置性使得令牌桶算法具有很大的灵活性。

实现限流

1、配置Redis:
因为RequestRateLimiter过滤器是基于 Redis 的,所以我们首先需要添加对应的redis依赖和在Spring Boot的配置文件中,配置Redis连接信息。

依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>

配置文件:

spring:redis:host: localhostport: 6379

2、配置限流过滤器: 在Spring Cloud Gateway的配置文件中,为需要进行限流的路由配置限流过滤器。例如:

spring:cloud:gateway:routes:- id: my_routeuri: http://example.compredicates:- Path=/my_route/**filters:- name: RequestRateLimiterargs:redis-rate-limiter.replenish-rate: 10redis-rate-limiter.burst-capacity: 20key-resolver: "#{@remoteAddrKeyResolver}"

上述配置中,my_route是需要进行限流的路由配置,RequestRateLimiter是使用RequestRateLimiterGatewayFilterFactory实现限流的过滤器。redis-rate-limiter.replenish-rate参数指定了每秒钟生成的令牌数,redis-rate-limiter.burst-capacity参数指定了令牌桶的容量。

key-resolver:用于获取限流维度的实现类,可以根据ip、uri、设备号、用户id等进行限流,这里的remoteAddrKeyResolver是一个自定义的KeyResolver实现类,用于根据请求的远程地址来生成限流的Key。

3、实现KeyResolver: 创建自定义的KeyResolver实现类

限流的过滤器需要根据一定的规则来确定流量的标识,通过实现KeyResolver接口可以定义我们的流量维度

下面就是根据请求的远程地址来生成限流的Key

@Component("remoteAddrKeyResolver")
public class RemoteAddrKeyResolver implements KeyResolver {@Overridepublic Mono<String> resolve(ServerWebExchange exchange) {return Mono.just(exchange.getRequest().getRemoteAddress().getAddress().getHostAddress());}
}

注:bean名需要与我们配置文件使用的key-resolver名称一致

以上步骤完成后,RequestRateLimiterGatewayFilterFactory就会自动根据规则生成限流的Key,并根据配置的令牌桶容量和每秒钟生成的令牌数来限制路由访问速率。

http://www.yayakq.cn/news/160717/

相关文章:

  • cdr做网站流程赣州市经开区住房和建设局网站
  • 江苏嘉文建设发展有限公司网站婚庆公司一条龙一般多少钱
  • 在哪里可以做网站赚钱建设一个电影网站需要多少钱
  • 站内推广方案晋城网站建设价格
  • 外贸网站建设公司如何安居客网官网入口
  • 西安网站 技术支持牛商网wordpress php 得到页面描述
  • 北京做网站源代码的青岛市疾病预防控制中心紧急提示
  • 商标设计在线网站开发使用api对seo
  • 网站开发怎么进行数据库连接广州市网站建设在哪里
  • 淮北市矿务局工程建设公司网站企业网站建设合同书标准版
  • 手机网站设计报价襄阳做网站多少钱
  • 为企业设计网站seo是什么简称
  • 网站开发知识培训北京 网站定制开发
  • 义乌外贸网站建设公司洛阳网站建设培训
  • 中国平面设计公司seo常规优化
  • 重庆做网站多少钱昌吉住房和城乡建设局网站
  • 东营科技官方网站二级建造师证书查询官方网站
  • 大连制作网站软件蜘蛛搜索引擎网页版
  • 有了服务器怎么做网站建设网站预期效果怎么写
  • 云服务器可以做几个网站电脑怎么制作视频短片
  • 找别人做淘客网站他能改pid吗网站设计语言
  • 网站模板英文网站设计师培训中心
  • 网站建设选方舟网络泉企业网站建设
  • 12306网站是谁做的做后期的网站有哪些
  • 爱站工具包的模块亚马逊提升关键词排名的方法
  • 中国航空集团建设开发有限公司网站上海闵行区房价
  • 温州网站优化排名推广杭州seo按天计费
  • 乐山网站建设公司怎么把广告发到各大平台
  • 网站icp备案查询官网数据服务网站策划方案
  • 重庆网站建设 菠拿拿外贸西班牙语网站建设