1.启动时提示找不到bean,无法注入对应的接口
Field baseService in xx.TestController required a bean of type 'xxxService' that could not be found.
可能原因:
接口位置不在启动类的子包下,扫描不到这个@FeignClient.
使用@SpringBootApplication(scanBasePackages = "xxx")是不够的
在注解@EnableFeignClients上添加@EnableFeignClients(basePackages = "xx")
2.访问对应的地址,内部调用@FeignClient注解的方法时,报错
com.netflix.client.ClientException: Load balancer does not have available server for client:xxx
xxx是生产者服务名称,通过eureka.instance.appname来指定的,在eureka界面也可以看见这个name,但是访问不到.
这个xxx需要通过spring.application.name来指定才可以.
eureka.instance.appname在eureka界面显示最前面Application列,并没有什么多大的意义,而spring.application.name显示在Status的url地址最后面,在@FeignClient(写在这里)
有个博文还说这两个东西有优先级,乱说个大头鬼啊.
3.在使用zuul作为网关的时候,通过访问 http://zuul服务地址:端口/微服务名称/业务
这里的微服务名称是在eureka中的Application
例如访问 http://127.0.0.1:10000/base-show/xxxx
坑爹是如果配置了eureka.instance.appname,同时配置spring.application.name,且不和前面的相同.那么会抛异常
Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: base-show
但是访问http://127.0.0.1:10000/base/xxxx又是404错误!!!
只能是删掉eureka.instance.appname,这样可以通过
http://127.0.0.1:10000/base/xxxx来访问微服务