一、錯誤信息
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer
二、根本原因
由於SpringCloud Feign在Hoxton.M2 版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer會報錯
三、解決方案
3.1 加入loadbalancer依賴,但需要exclude ribbon(實踐可行)
此方案下的:
- springboot版本: 2.5.3
- springcloud版本: 2020.0.3
就算加入load balancer,但是依然會報同樣的錯。原因是:nacos中ribbon會造成loadbalanc包失效
所以要先exclude ribbon:
<!-- 服務注冊與發現 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.0.RELEASE</version> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency>
再引入load balancer:
<!--load balancer--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-loadbalancer</artifactId> <version>2.2.2.RELEASE</version> </dependency>
3.2 SpringCloud, SpringBoot 降版本(實踐出錯)
修改它的pom文件中spring cloud的版本
修改了下spring boot版本
參考:https://www.cnblogs.com/npeng/p/14272634.html


