解决No instances available for XXX
解决No instances available for XXX 已经注册到Eureka但服务无法使用
场景spring cloud 使用Eureka当注册中心
项目结构如下
在搭建集群完成后发现 eureka 客户端的服务名称不对 发现服务名称不对后我的第一直觉让我觉得是我的spring.application没有配置好 但发现spring.application是正确的 然后我就使用instance.appname修改了实例的服务名称 在准备使用RestTemplate负载均衡测试的时候发现 控制台发生了报错
No instances available for XXX
错误说是没有找到实例 但是 eureka客户端显示已经注册上了
通过查找资料发现造成这个错误的原因有: 1.jar导入错误 2.实例名称错误 3.yml编写错误
根据我的排除发现jar包和yml都没有出现错误 然后我就怀疑是不是注册ip出现错误导致访问不到,
我就通过discoveryClient获取到了所有的服务名称 但是根据名称还是查找不到实例 第二种实例名
称错误也就排除了 后来我就在想这个实例的服务的注册名称是根据spring.application.name 决定的
根据最开始没有设置instance.appname的名称我发现注册实例的名称都是cloud-api-com也就是我
的公共api包 所以我排查发现cloud-api-com中的application.yml配置了spring.application.name 也
就导致了 所有安装这个包的项目都使用了cloud-api-com注册 删除其中的名称再次启动 问题解决
可能会引起错误的情况有以下四种 1.jar导入错误 2.实例名称错误 3.yml编写错误 4.导入的通用项目类已经设置了spring.application.name
更多推荐
所有评论(0)