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 下的節點名它會取一個節點名後面拼接一個逗號,結尾也是,哈哈,看着怪怪的,拼接完忘了處理末尾的逗號了。

 

這裏記錄一下。

 

 

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