搭建alibabacloud微服务,昨天自己尝试引用OpenFeign来处理服务调用问题
网上很简单,引用依赖,和写一些代码就能整合成功了
但是我参考他们的代码,最后报错:org.springframework.cloud.client.loadbalancer.reactive.OnNoRibbonDefaultCondition
尝试切换各种依赖版本,各种类型报错层出不穷,但问题确实是版本不兼容问题。
版本依赖关系:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
后来我发现一种新的版本管理方式,只要这样标明,就能自动管理spring-cloud版本,com.alibaba.cloud版本
<properties> <java.version>8</java.version> <springframework-cloud.version>2020.0.1</springframework-cloud.version> <alibaba-spring-cloud.version>2021.1</alibaba-spring-cloud.version> </properties>
<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${alibaba-spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${springframework-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
我maven不是很深入了解,dependencyManagement这个标签我也是模糊的概念
这样,你pom里的
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency>
都不用写具体的版本了,只要上面定义的版本之间兼容,就不会出现因为版本关系的各种报错了
最后我的代码完美运行