将之前已经搭好的注册中心server中添加两个配置文件application-peer1.yml
和application-peer2.yml
,
各自设置自己的eureka.instance.hostname peer1 peer2.
将defaultZone的url设置为对方。
将项目打包为.jar文件,分别通过这两个配置文件为属性来分别启动项目以个用默认配置 (application.yml中指定
spring.profiles.active=peer1),一个在idea的run config 的program arguments里加上 --spring.profiles.active==peer2。
启动后访问两个配置中心发现:
DS Replicas中 都有对方。
问题:
Application 下面并没有eureka-server应用注册。
解决办法,在启动类上加@EnableEurekaClient,这是该实例也是Eureka客户端。方法二,将
eureka:
client:
register-with-eureka: true
fetch-registry: true
改回true。这里选择直接改回true。
重启后出现了eureka-server的两个实例。
但是这时发现,节点均出现在unavailable-replicas下
查资料后解决办法如下。
两个实例的eureka.instance.appname 必须一致
然后必须将eureka.instance.prefer-ip-address设为false。(估计原因是同一塔机子ip一样,不算高可用?直接就不给用了。。使用主机名的话peer1,peer2 它就不知道这是一个主机了。。感觉有点坑)
改完配置后在run dashboard里重启两个实例。在访问eureka管理页面,发现节点已经到available-replicas下了。
还发现管理页面一个小问题:unavailable-replicas 和 available-replicas 下的节点名它会取一个节点名后面拼接一个逗号,结尾也是,哈哈,看着怪怪的,拼接完忘了处理末尾的逗号了。
这里记录一下。