接下来的报错是因为 Nacos 高版本引起的 笔者使用的是
2021.1
>小事 , 本来不想记录的, 可是看度娘的搜索结果 , 都是另一句 "Debug - Feign: Did you forget to include spring-cloud-starter-loadbalancer" , 并没有收到有关 ribbon 的这个错误, 所以就想着在这里记录一下 ,
主要版本如下
<properties>
<java.version>1.8</java.version>
<file_encoding>UTF-8</file_encoding>
<spring-boot.version>2.2.4.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR3</spring-cloud.version>
<com.alibaba.cloud.version>2021.1</com.alibaba.cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<!--spring boot 2.2.2-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${com.alibaba.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>
网上收到的有关loadbalancer的解决办法大多都是 , 在
spring-cloud-starter-alibaba-nacos-discovery 和 config 中屏蔽掉 ribbon , 然后单独引入 loadbalancer , 至于为什么这么做 主要是因为 , 高版本的Nacod 不使用ribbon 来做负载均衡了 , 使用的是loadbalancer , 所以 nacos自带的配置就会影响项目本身的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-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
脑子稍微一转 ,便能相同, 他既然是ribbon 和 loadbalancer 互相影响, 那么上述的方式 就是通用公式一样, 翻转一下就可以了
<!-- Nacos依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
这样就ok 了