前言:
spring-cloud爲基礎的微服務架構,全部的微服務都須要註冊到註冊中心,若是這個註冊中心阻塞或者崩了,那麼整個系統都沒法繼續正常提供服務,因此,這裏就須要對註冊中心進行集羣,換言之,高可用(HA)java
前提:
閱讀並完成第一個註冊中心的項目,環境無需改變。本文是模擬的高可用,能夠複製兩個註冊中心的項目單獨修改各自的配置文件達到一樣的效果spring
修改hosts,在文件末添加兩行以下:瀏覽器
127.0.0.1 peer1 127.0.0.1 peer2
推薦使用notepad++,若是是win10會提醒提權限,肯定,而後保存便可。架構
項目搭建:
打開註冊中心的項目,在src/resources下建立一個application-peer1.propertiesapp
#應用名 spring.application.name=eureka-server #提供服務端口1111 server.port=1111 #提供服務的域名,這裏在hosts文件中修改了 eureka.instance.hostname=peer1 #向第二個註冊中心註冊本身 eureka.client.service-url.defaultZone=http://peer2:1112/eureka/
在src/resources下建立一個application-peer2.propertiesmaven
#應用名稱與第一個註冊中心同樣 spring.application.name=eureka-server #提供服務端口1112 server.port=1112 #提供服務的域名,這裏在hosts文件中修改了 eureka.instance.hostname=peer2 #向第一個註冊中心註冊本身 eureka.client.service-url.defaultZone=http://peer1:1111/eureka/
本文使用idea進行測試,首先須要對這個項目進行打成jar包,由於在pom.xml中已經引入了maven編譯工具和打包工具並指定打包格式爲jar包,這裏直接操做,屏幕右上方ide
打包完成,該jar包位於target文件夾下,如圖微服務
如圖打開terminal,屏幕下方工具
打開terminal以後,由於jar包在target目錄下,而當前目錄爲項目目錄,因此先cd到target目錄下,而後輸入以下命令:測試
小技巧:輸入命令的時候爲了防止輸錯文件名,能夠輸入文件名的前幾個字母,而後使用tab鍵進行自動補全
java -jar EurekaServerDemo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
輸入完成此命令後,peer1配置文件的項目啓動,如圖
接下來咱們啓動第二個項目,這裏須要另開一個terminal,cd到target目錄
注意:咱們這裏用的是同一個項目,讀者可使用兩個項目進行測試,須要特別注意的是端口不要衝突了
java -jar EurekaServerDemo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
等待項目啓動完成,查看有無報錯。
測試
瀏覽器輸入:localhost:1112進行查看,也能夠輸入localhost:1111進行查看
結語
在設置了多節點的註冊中心後,實現了高可用,可是此時咱們的微服務應用僅僅是註冊到這一個服務之中,因此,咱們須要將新節點的註冊服務路徑一樣配到微服務應用中。
多節點間使用","分開,如圖
這樣微服務提供者從其中一個地方斷開以後,由於在其餘節點有註冊,因此還能夠提供服務,若是不想使用主機名進行訪問註冊中心,也可使用ip,可是須要先添加一條配置,該值默認false
eureka.instance.prefer-ip-address=true
本文爲做者實際操做記錄,如需轉載請註明出處