Spring Cloud學習(2)——高可用Eureka Server

閱讀的書籍爲《Spring Cloud 微服務實戰》。

在單節點Eureka Server中,通過設置,讓服務中心不註冊自己:

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

而實現Eureka Server的高可用,實際就是把自己作爲服務,向其他服務註冊中心註冊,形成一種互相註冊的服務註冊中心,以實現服務清單的互相同步,達到高可用的效果。

在上文單節點的Eureka Server的基礎之上進行擴展,

構建雙節點服務註冊中心集羣

兩個節點的hostname分別爲peer1和peer2。
清空application.properties裏的內容。
這裏如果不清空之前application.properties裏的內容,之前設置的eureka.client.register-with-eureka=false eureka.client.fetch-registry=false會對下文的測試產生影響,讓peer1和peer2都在不可用分區中。
在application.properties的同級目錄下創建application-peer1.properties作爲peer1的配置文件,將serviceUrl指向peer2:

spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/
#關閉保護機制
eureka.server.enable-self-preservation=false

在application.properties的同級目錄下創建application-peer2.properties作爲peer2的配置文件,將serviceUrl指向peer1:

spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/
#關閉保護機制
eureka.server.enable-self-preservation=false

在/etc/hosts文件中添加對peer1和peer2的轉換,windows系統的修改路徑爲C:\windows\system32\drivers\etc\hosts:

127.0.0.1 peer1
127.0.0.1 peer2

通過spring.profiles.active屬性來分別啓動peer1和peer2

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

這裏寫圖片描述

驗證

訪問peer1的註冊中心http://localhost:1111
這裏寫圖片描述
訪問peer2的註冊中心http://localhost:1112
這裏寫圖片描述
可以看見,peer1和peer2分別出現在對方的registered-replicas和available-replicas中了。
這時,如果關閉peer2,刷新peer1,可以看見peer2變成了不可用分片(unavailable-replicas)。
這裏寫圖片描述

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