爲了使 Eureka Server 實現高可用,咱們須要爲它配置集羣。這樣當有一臺 Eureka Server 有故障時,集羣中的其餘 Server 能夠進行代替。Eureka 集羣之中的 Node 經過 P2P 通訊的方式共享註冊表,以使得每一個 Eureka Server 的註冊表保持一致。本教程將在本地開啓兩臺 Eureka Server 以測試集羣的搭建。git
Gitee碼雲spring
打開遠程 git 倉庫中的 eureka-server.yml
文件,添加以下配置:ide
--- spring: profiles: peer1 server: port: 8761 eureka: instance: hostname: peer1 client: register-with-eureka: true fetch-registry: true serviceUrl: defaultZone: http://peer2:8762/eureka --- spring: profiles: peer2 server: port: 8762 eureka: instance: hostname: peer2 client: register-with-eureka: true fetch-registry: true serviceUrl: defaultZone: http://peer1:8761/eureka
三劃線用於區分兩個不一樣的 profile,使用 spring-boot 插件啓動項目時可經過命令行參數指定 profile。這兩個 profiles 分別指定了 profile 的名字,服務的端口號。ureka.instance.hostname
爲主機名,必需要和 eureka.client.serviceUrl.defaultZone
中的 Peer 主機名保持一致。例如,在 peer1
的 profile 中,把 peer2
做爲了集羣中另外一個鏡像節點,那麼這個 http://peer2:8762/eureka
URL 中的 peer2
就要和 peer2
profile 中的 eureka.instance.hostname
保持一致。serviceUrl
是 eureka server 的註冊地址,defaultZone
想對於 AWS 的 availability zone,在本地測試能夠用 defaultZone
或者其餘名稱,以把 Eureka Server 部署在不一樣集羣。register-with-eureka
和 fetch-registry
以前設置爲了 false, 由於只有一臺 Eureka Server,並不須要本身註冊本身,而如今有了集羣,可在集羣的其餘節點中註冊本服務。spring-boot
修改 hosts 文件,以使 peer1 和 peer2 映射到 localhost,由於 eureka server 的主機名必須不一樣纔可互相註冊,因此在本地須要模擬兩個不一樣的主機名:測試
127.0.0.1 peer1 127.0.0.1 peer2
打開遠程 git 倉庫中的 product-service.yml
文件,添加以下配置:fetch
server: port: 8081 spring: cloud: config: allow-override: true override-system-properties: false eureka: client: serviceUrl: defaultZone: http://peer1:8761/eureka, http://peer2:8762/eureka
這裏經過 eureka.client.serviceUrl.defaultZone
把 eureka 集羣中的全部 url 都填寫了進來,也能夠只寫一臺,由於各個 eureka server 能夠同步註冊表。url
首先啓動 configserver,而後分別運行以下兩條命令啓動 eureka server 集羣:插件
mvn spring-boot:run -Dspring-boot.run.profiles=peer1 mvn spring-boot:run -Dspring-boot.run.profiles=peer2
最後啓動 productService
,訪問任一 Eureka Server,如:命令行
http://peer1:8761
咱們能夠看到 Eureka Server 集羣和 Product-Service 均在註冊表裏。code
Application | AMIs | Availability Zones | Status |
---|---|---|---|
EUREKA-SERVER | n/a (2) | (2) | UP (2) - xuqians-imac:eureka-server:8761 , xuqians-imac:eureka-server:8762 |
PRODUCT-SERVICE | n/a (1) | (1) | UP (1) - xuqians-imac:product-service:8081 |
歡迎訪問個人博客:張旭乾的博客