前置条件:

springboot版本:
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.15</version>
  </parent>
 openfeign版本:
       <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-openfeign</artifactId>
          <version>3.1.1</version>
      </dependency>

报错提示:

 No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer?

解决方法1: 设置配置类,禁止使用负载均衡


// 配置类
@Configuration
public class FeignConfig {
    @Bean // 配置不使用负载均衡
    public Client feignClient() {
        return new Client.Default(null, null);
    }
}

// 然后openfeign客户端接口类那里使用这个配置(其实不使用也行)
@FeignClient(name = "request-cpinfo" ,configuration = FeignConfig.class)
public interface CpClient {

    @GetMapping(value = "/user/getUserListTest")
    Result getTest(URI uri,@RequestParam("name") String na);

}

解决方法2: 直接在@FeignClient注解里配置需要的url

// 增加url参数,防止 openfeign调用负载均衡导致报错,即使设置url,但是还是以传参数uri优先
@FeignClient(value = "fsdfsd",url = "http://localhost:8090")
public interface CpClient {

    @GetMapping(value = "/user/getUserListTest")
    Result getTest(URI uri,@RequestParam("name") String na);

}

// controller中调用场景
    @ApiOperation(value = "获取用户列表",notes = "使用json传参")
    @GetMapping("/getTest")
    public Result getTest(){
        URI uri = URI.create("http://localhost:8080");
        String name="111";
        Result test = cpClient.getTest(uri, name);
        System.out.println(test);

        return Result.success("操作成功");
    }

解决方法3: 按提示引入spring-cloud-starter-loadbalancer依赖,但是此时因为版本兼容问题容易出错,所以额外需要引入springcloud版本依赖,pom依赖如下

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.5</version> <!-- 使用与 Spring Boot 2.7 兼容的版本 -->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
          <!-- 负载均衡 openfeign需要使用,需要结合上面注的springcloud进行版本管理 -->
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-loadbalancer</artifactId>
          <version>3.0.3</version>
      </dependency>

解决bug累死人了,今天晚上我要多吃点。

posted on 2025-07-12 19:34  知学  阅读(53)  评论(0)    收藏  举报