涉及三个组件,Eureka服务器,服务提供者,消费者。
消费者
旧pom.xml文件中依赖如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-ribbon -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
启动消费者服务正常,但是从浏览器输入url请求消费者时,会报错:no available instances for…
解决办法:
删除spring-cloud-starter-netflix-ribbon
依赖。
因为spring-cloud-starter-netflix-eureka-client
中已经内置了ribbon
,再导入ribbon包会导致冲突。
注意:
- 若消费者使用已经过时的
spring-cloud-starter-eureka
包,再导入已经过时的spring-cloud-starter-ribbon
包,消费者启动会报错"ServerPropertiesAutoConfiguration.class] cannot be opened because it does not exist"。 - 若消费者使用已经过时的
spring-cloud-starter-eureka
包,再导入spring-cloud-starter-netflix-ribbon
,消费者启动正常,但是浏览器输入url请求消费者时,会报错"no available instances for…"。 - eureka服务端官方推荐用依赖包:
spring-cloud-starter-netflix-eureka-server
,取代已经过时的spring-cloud-starter-eureka-server
。 - eureka客户端官方推荐使用依赖包:
spring-cloud-starter-netflix-eureka-client
,已经内置ribbon支持。取代已经过时的spring-cloud-starter-eureka
。并且无需再导入ribbon依赖包。