场景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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐