springCloud 4 Eureka 高可用配置的坑

将之前已经搭好的注册中心server中添加两个配置文件application-peer1.ymlapplication-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 下的节点名它会取一个节点名后面拼接一个逗号,结尾也是,哈哈,看着怪怪的,拼接完忘了处理末尾的逗号了。

 

这里记录一下。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章