Spring cloud Gateaway : Unable to find GatewayFilterFactory with name RequestRateLimiter

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Spring cloud Gateaway : Unable to find GatewayFilterFactory with name RequestRateLimiter

承接上文《RedisTemplateConfig sentinel(哨兵模式) cluster(集群模式) 一键配置切换代码》 ,写一下之前遇到过的一个错误,也方便大家遇见同样错误时借鉴一下


首先来看一下配置redis sentinel redisConnectionFactory 的代码

@Bean("redisConnectionFactory")
  @ConditionalOnProperty(value = "spring.redis.mode",havingValue = "sentinel")
  public RedisConnectionFactory redisConnectionFactory(@Qualifier("poolConfig") GenericObjectPoolConfig config,
                  RedisSentinelConfiguration redisConfig) {//注意传入的对象名和类型RedisSentinelConfiguration
    LettuceClientConfiguration clientConfiguration = LettucePoolingClientConfiguration.builder().poolConfig(config).build();
    return new LettuceConnectionFactory(redisConfig, clientConfiguration);
  }

可以忽略


@ConditionalOnProperty(value = "spring.redis.mode",havingValue = "sentinel")

这个是用来根据nacos 配置判断自动注入cluster 模式还是sentinel 模式的,然后启动gateaway 报如下错误

1.png

然后跟一下代码

1.png

既然是

RouteDefinitionRouteLocator 类报错那就直接看报错方法 发现一共32个factory,确实没有RequestRateLimiter 的factory

1.png

直接说一下我的解决方式,其实也是随便改完之后就好用了,还没有进行跟踪

下面看看我是如何解决的

1.png

对,你看的没错,由原来的返回

redisConnectionFactory 接口变为返回实现类就ok了,然后再看下factorys

1.png

变为了33个factory 并且以及有了RequestRateLimiter


按理说返回接口与实现其实应该一样的,等以后有时间了再重新跟踪一下这个问题

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
Java 容器 Spring
聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】(中)
聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】(中)
|
设计模式 Java 开发者
【小家Spring】面向切面编程之---Spring AOP的原理讲解以及源码分析(Cannot find current proxy: Set 'exposeProxy' property on )(下)
【小家Spring】面向切面编程之---Spring AOP的原理讲解以及源码分析(Cannot find current proxy: Set 'exposeProxy' property on )(下)
【小家Spring】面向切面编程之---Spring AOP的原理讲解以及源码分析(Cannot find current proxy: Set 'exposeProxy' property on )(下)
|
3月前
|
Java 开发工具 Spring
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known
|
6月前
|
Java Spring
spring-doc报错Unable to render this definition
spring-doc报错Unable to render this definition
421 0
|
NoSQL Redis Sentinel
redisson-spring-boot-starter Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6381
redisson-spring-boot-starter Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6381
redisson-spring-boot-starter Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6381
|
Java Spring
spring cloud gateaway io.netty.channel.unix.Errors$NativeIoException: accept(..) failed: 打开的文件多
spring cloud gateaway io.netty.channel.unix.Errors$NativeIoException: accept(..) failed: 打开的文件多
|
Java Spring
spring学习32-id和name
spring学习32-id和name
100 0
spring学习32-id和name
|
前端开发 Java Spring
你知道@RequestMapping的name属性有什么用吗?带你了解URI Builder模式(UriComponents/UriComponentsBuilder)【享学Spring MVC】(上)
你知道@RequestMapping的name属性有什么用吗?带你了解URI Builder模式(UriComponents/UriComponentsBuilder)【享学Spring MVC】(上)
你知道@RequestMapping的name属性有什么用吗?带你了解URI Builder模式(UriComponents/UriComponentsBuilder)【享学Spring MVC】(上)
|
IDE Java 程序员
聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】(下)
聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】(下)
聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】(下)