org.springframework.cloud.client.loadbalancer.reactive.DeferringLoadBalancerExchangeFilterFunction

使用 spring-boot-starter-web 项目,启动的时候,突然报错了:

Parameter 0 of method loadBalancerWebClientBuilderBeanPostProcessor in 
org.springframework.cloud.client.loadbalancer.reactive.
LoadBalancerBeanPostProcessorAutoConfiguration required a bean of type 
'org.springframework.cloud.client.loadbalancer.reactive.
DeferringLoadBalancerExchangeFilterFunction' that could not be found.


Action:

Consider defining a bean of type 'org.springframework.cloud.client.loadbalancer.
reactive.DeferringLoadBalancerExchangeFilterFunction' in your configuration.

提示没有对应依赖,就先加:

gradle:

implementation 'org.springframework.cloud:spring-cloud-starter-loadbalancer'

再启动,又报另外一个错:

Consider defining a bean of type 'org.springframework.cloud.client.loadbalancer.reactive.
DeferringLoadBalancerExchangeFilterFunction' in your configuration.

再查了下,里面说是 gateway影响了。搜了下,项目并没有引用gateway的内容。

然后点击help -->  dependencies 查看

搜索gateway

 

 真的有。 没想到是引入一个包的时候,引入的。

去掉 该jar包引用的模块:

implementation ('com.fls:fls-log-collector:1.0.0-SNAPSHOT'){
        exclude module: "spring-cloud-starter-gateway"
    }

再去掉上面加的引用。 再启动就正常。 

总结:

        遇到引用包有冲突的时候,用 help -->  dependencies 查看相关jar包里面模块的引用,冲突再去掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
<h3>回答1:</h3><br/>loadbalancerwebclientbuilderbeanpostprocessor方法的参数需要一个类型为'org.springframework.cloud.client.loadbalancer.reactive.deferringloadbalancerexchangefilterfunction'的bean,但是找不到该类型的bean。 <h3>回答2:</h3><br/>在Spring Cloud中,如果我们要实现负载均衡策略,就需要使用到相应的负载均衡器组件。其中,有一种使用比较广泛的负载均衡器是基于Reactive编程模型的。 但是,当我们在使用这种负载均衡器组件时,可能会遇到一个类似的错误: ``` parameter 0 of method loadbalancerwebclientbuilderbeanpostprocessor in org.springframework.cloud.client.loadbalancer.reactive.loadbalancerbeanpostprocessorautoconfiguration required a bean of type 'org.springframework.cloud.client.loadbalancer.reactive.deferringloadbalancerexchangefilterfunction' that could not be found. ``` 这个错误提示比较长,但是实际上它所要表达的意思并不复杂。简单来说,就是我们在使用Reactive负载均衡器时,未能找到对应的负载均衡器过滤器类。 在Spring Cloud中,负载均衡器过滤器类是用来实现负载均衡策略的关键组件。如果我们使用Reactive编程模型,就需要使用对应的负载均衡器过滤器类,即`DeferringLoadBalancerExchangeFilterFunction`。 但是,由于某些原因,我们在使用Reactive负载均衡器时,可能会遇到无法找到这个类的情况。这时候,我们需要检查一下我们的项目配置,看看是否配置正确。 具体来说,我们需要确保以下几个方面的配置正确: 1. 在`pom.xml`文件中,需要添加`spring-cloud-starter-loadbalancer`依赖。 2. 在`application.yml`或者`bootstrap.yml`文件中,需要添加正确的负载均衡器配置,比如: ``` spring: cloud: loadbalancer: ribbon: enabled: true ``` 3. 如果我们使用了自定义的负载均衡策略,需要确保自定义策略实现类中依赖的`DeferringLoadBalancerExchangeFilterFunction`类已被注入。 通过以上步骤的检查和确认,我们就可以解决上述错误。总之,在使用Reactive负载均衡器时,我们需要注意相应的配置和组件依赖,避免出现以上错误。 <h3>回答3:</h3><br/>这是Spring Cloud中的一个错误提示,它通常是由于在启动Spring Cloud应用程序并尝试使用使用Spring Cloud负载平衡器时出现的一些配置问题。具体来说,这个错误提示涉及到一个叫做“loadbalancerwebclientbuilderbeanpostprocessor”的类和一个叫做“deferringloadbalancerexchangefilterfunction”的bean的缺失。 首先,我们需要了解一下Spring Cloud负载平衡器的基本工作原理。它通常用于在多个相同的微服务实例之间进行负载均衡,以确保请求被均匀地分配到每个实例上。在Spring Cloud中,我们可以使用一个名为“LoadBalancerClient”的接口来访问负载平衡器实例,而Spring Cloud会自动为我们管理这些实例之间的负载均衡。 对于这个特定的错误提示,问题在于Spring Cloud无法找到名为“deferringloadbalancerexchangefilterfunction”的bean。这个bean实际上是Spring Cloud负载平衡器的一部分,它是一个用于将请求发送到负载平衡器的微服务实例的过滤器。因此,如果它不存在,那么负载平衡器就无法正常工作。 要解决这个问题,有几种可能的解决方案。首先,你可以检查一下你的代码和配置文件,确保你已经正确地设置了Spring Cloud负载平衡器。你还可以检查一下你的类路径,确保它包含了Spring Cloud负载平衡器的所有必需文件。最后,你可以尝试重新构建和重新部署你的应用程序,看看是否可以解决问题。 总的来说,要解决这个错误提示,你需要了解Spring Cloud负载平衡器的基本工作原理,并仔细检查你的代码和配置文件,以确保你已经正确地设置了它。如果你仍然遇到问题,你可以参考Spring Cloud的官方文档或在社区论坛上寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天狼1222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值