用到springboot +nacos+openFeign,在搭建项目的时候遇到了很多问题在此做个总结方便后续用到时使用
springboot 使用版本 2.7.5
nacos使用版本0.2.12
openfeign使用版本3.1.4
问题一
No Feign Client for loadBalancing defined. Didyou forget to include spring-cloud-starter-loadbalance
问题描述:
客户端使用openfeign时启动项目报错
原因:
第一次创建springboot项目的时候没有选中openfeign的依赖,项目创建后再pom.xml中手动加入的依赖,我创建了两个springboot这个是客户端用openfeign去调用接口的,启动的时候报上面的错误。
解决:
在创建springboot项目的时候选中openfeign的依赖
问题二
No Feign Client for loadBalancing defined. Didyou forget to include spring-cloud-starter-loadbalance
问题描述:
已经按照问题一的解决方案创建项目后启动客户端服务还是报错,在继续百度说是新版本中放弃了ribbon用了loadbalance做负载,于是试试百度的解决方案
解决方案:如下
问题三
问题描述:解决上面两个问题后启动项目报错,错误信息如下
Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'discoveryAutoRegister' defined in class path resource [com/alibaba/boot/nacos/discovery/autoconfigure/NacosDiscoveryAutoConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: serverList is empty,please check configuration; nested exception is ErrCode:-400, ErrMsg:serverList is empty,please check configuration
问题原因:配置文件中nacos的配置地址写错了,一定要注意不能写错啊
解决方案:
原本写成
spring.cloud.nacos.server-addr=127.0.0.1:8848
修改成
nacos.discovery.server-addr=127.0.0.1:8848
问题四
问题描述:
两个springboot都启动,客户端调用服务端提供的接口报错,错误内容如下
[503] during [GET] to [http://nacos-openfeign-procuder/call/lili] [SpringCloudNacosProviderClient#call(String)]: [Load balancer does not contain an instance for the service nacos-openfeign-procuder]
nacos注册的服务内容
原因:
nacos上注册的服务一会就自动消失了
解决方案:
改成用代码注册,项目启动时自动向nacos上注册服务