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

如何免费创建个人网站网站建设公司取名

如何免费创建个人网站,网站建设公司取名,辽宁省住房建设厅网站,网站推广的案例概念 关于微服务网关Gateway中有几十种过滤工厂,这一篇博文记录的是关于请求限流过滤工厂,也就是标题中的RequestRateLimiterGatewayFilterFactory。这个路由过滤工厂是用来判断当前请求是否应该被处理,如果不会被处理就会返回HTTP状态码为42…

概念

        关于微服务网关Gateway中有几十种过滤工厂,这一篇博文记录的是关于请求限流过滤工厂,也就是标题中的RequestRateLimiterGatewayFilterFactory。这个路由过滤工厂是用来判断当前请求是否应该被处理,如果不会被处理就会返回HTTP状态码为429的code。接下来构建两个模块,其中一个是服务模块,一个是网关模块来测试关于请求过滤工厂是否生效。

服务

引入依赖

<dependencies><!-- 由于仅是测试 于是无需多引入微服务相关依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

修改yml配置

server:port: 8081spring:application:name: cloud-demo

接口路径

@RestController
@RequestMapping("/filter")
public class RateLimiterFilterController {@GetMapping("/requestRateLimiter")public String requestRateLimiter() {return "进入了限流方法";}}

网关

引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 网关 需要注意的是网关中不要引入spring-boot-starter-web 否则启动报错 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>2.2.0.RELEASE</version>
</dependency>
<!-- Redis RateLimiter -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>

修改yml配置

server:port: 8080spring:application:name: cloud-gatewayredis:host: IPport: 端口password: 密码cloud:gateway:routes:- id: request-rate-limiter-routeuri: http://127.0.0.1:8081predicates:- Path=/filter/requestRateLimiter/**filters:# 需要注意的是Redis要在5.x以上才会生效 并且有密码情况下需要配置正确- name: RequestRateLimiterargs:# 对应的限流路由判断key-resolver: "#{@userKeyResolver}"# 每秒生成的令牌数redis-rate-limiter.replenishRate: 2# 高并发情况下将每秒生成的令牌数增加的个数 即 replenishRate + burstCapacityredis-rate-limiter.burstCapacity: 2# 每个请求消耗的令牌个数redis-rate-limiter.requestedTokens: 2

接口

@Configuration
public class FilterConfig {@Beanpublic KeyResolver userKeyResolver() {// getFirst()是获取MultiValueMap中的第一个key中的值 因为这个MultiValueMap不会产生key冲突导致value覆盖的问题return exchange -> Mono.just(exchange.getRequest().getQueryParams().getFirst("user"));}}

测试

        输入:http://localhost:8080/filter/requestRateLimiter是无法访问的。因为在FilterConfig配置类中配置了userKeyResolver这个组件,所以需要在路径上添加user参数。

        输入:http://localhost:8080/filter/requestRateLimiter?user=xxx可以正常访问的,但是把刷新的速率加快,直接报了以下的错误,如果没有报错也没有显示文本的,F12也可以看到路径429错误码,这就是一开始所说的请求过多此过滤工厂会报429HTTP状态码的问题。

        当然,既然这个过滤工厂需要配置Redis,那么就一定会需要在Redis中存储数据。打开Redis可视化工具可以发现,因为我没有指定存储的库,所以默认在0数据库中,会被存储两个值。

        一个为request_rate_limiter.(user名称).timestamp,另一个为request_rate_limiter.(user名称).tokens。这之后就是涉及到源码的阅读,本篇博文并不会介绍源码,但后续会更新自定义路由过滤工厂。

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

相关文章:

  • 株洲网站建设方案建站程序大全
  • 湖滨网站建设公众号 创意名字
  • wordpress 英文站思政网站建设管理自查报告
  • 网站建设硬件设计方案电商项目流程
  • 云浮哪有做网站公司新东方
  • 最新某地方装修门户源码 php装饰公司程序 dede行业网站模板南京制作网页公司
  • 基于mvc的网站开发个人做的网站百度搜索不到
  • 有公司可以做网站升级ipv6台州百度关键词排名
  • 阿里云做淘宝客网站开彩票网站做私庄
  • 国外做的比较好的展台网站除了阿里巴巴还有什么网站做外贸的
  • 镇江网站关键字优化公司施工企业管理制度
  • 网站开发语言开发网站制作公司 哪家好
  • 深圳 网站设计公司wordpress设置ip
  • 网站设计公司种类白名单 网站
  • php网站建设案例教程视频东莞做网站优化的公司
  • 织梦网站采集如何做医院做网站需要备案吗
  • 看装修案例的网站自学ui设计一般学多久
  • 福州做企业网站如何选择一家好的网站建设公司
  • 快速开发企业网站中搜网站提交
  • 网站设计中的事件是什么对网站开发的理解500字
  • 做两个网站 之间超链接宁波好品质品牌网站设计哪家好
  • 阿里云用什么系统做网站好wordpress添加一言
  • 建设银行jo 办网站用卡新产品推广方案范文
  • 单页营销网站2345推广联盟
  • 广州专业做外贸网站今天的湖北新闻
  • 全铝家居全屋定制十大名牌江西短视频搜索seo哪家好
  • 门户网站团队建设给个网站你知道
  • 做一个网站要花多少钱织梦手机网站
  • 网站搭建的流程033340网站建设与管理
  • 网站域名跳转怎么做灵犀科技 高端网站建设首页