问题描述
gulimall-member服务调用gulimall-coupou 服务时报错,无法启动,提示:For ‘gulimall-coupon’ URL not provided. Will try picking an instance via load-balancing.
分析
根据提示,应该是负载均衡出现错误,查看nacos与openfeign的依赖,发现之前版本中集成的ribbon并不存在。 进入spring cloud alibaba官网查看,说明文档中依然认为Nacos Discovery Starter 默认集成了 Ribbon ,emmmm…应该是维护人员还没来得及更新吧。(源自:官方文档)
网上查询后发现,2020 年 12 月 22 日Spring官方博客宣布,Spring Cloud 2020.0.0正式发布。2020.0.0是第一个使用新的版本号命名方案的Spring Cloud发行版本。Spring Cloud官方尤其着重指出ribbon、hystrix 和 zuul从Spring Cloud 2020.0正式版发布后将不再被Spring Cloud支持。在目前最新的Spring Cloud 2020.0中仅仅剩下了Eureka。但是留给Eureka的时间也不多了。(来源于https://www.jianshu.com/p/80e07c07f786) 也就是说,从spring cloud 2020.0.0开始,ribbon已被弃用,这里使用的版本是spring cloud alibaba 2021.0.1.0,匹配的是spring cloud 2021.0.1,所以也不支持ribbon。
解决方法
1. 回退版本
返回spring cloud 2020.0.0之前的版本,仍支持ribbon,可以不报错。
2. 替代ribbon
引入新的依赖即可。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
|