將之前已經搭好的註冊中心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 下的節點名它會取一個節點名後面拼接一個逗號,結尾也是,哈哈,看着怪怪的,拼接完忘了處理末尾的逗號了。
這裏記錄一下。