其他分享
首页 > 其他分享> > SpringCloudEureka高可用注册中心unavailable-replicas的问题

SpringCloudEureka高可用注册中心unavailable-replicas的问题

作者:互联网

最近在学习SpringCloud微服务框架,使用的是<SpringCloud微服务实战> 翟永超著,中国工信出版集团这本书.
在书的第三章,成功搭建注册中心server和服务提供者client之后,在尝试搭建高可用注册中心时报了错,经过查阅资料和尝试解决了问题.
此篇博客即是记录问题和解决问题的方法.

问题描述

按照书中的操作步骤,将之前已经搭好的注册中心server中添加两个配置文件application-peer1.propertiesapplication-peer2.properties,将项目打包为.jar文件,分别通过这两个配置文件为属性来分别启动项目

java -jar server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

两边都能正常启动成功
在这里插入图片描述
在这里插入图片描述
但是按照配置的端口去查看Eureka的页面,会发现注册的另一个注册中心会在unavailable-replicas中,而且页面有红字报错:EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY’RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
在这里插入图片描述
而书上则是正常的在available-replicas中.

为此困扰了好久.查了一些博客找到了解决办法

解决方法

之前有的博客说是配置了prefer-ip-address: true的问题,可是我没有配置这个属性,而且书上说这个属性的默认值是false.
后来看到了这篇博客:
https://blog.csdn.net/u010448530/article/details/81097642
说是由于配置文件加载顺序的关系,会先加载我之前写过的application.properties,里面设置了下面这两个属性:

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

使注册中心不注册自己.所以我这里会出现不可用的问题.

解决方法是在新添的两个配置文件中,设置这两个属性为true

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true

重新打包启动,发现成功了.
在这里插入图片描述

标签:unavailable,配置文件,replicas,jar,eureka,client,注册,SpringCloudEureka,server
来源: https://blog.csdn.net/u010827544/article/details/97140091