eureka高可用實現

前言:java

spring-cloud爲基礎的微服務架構,全部的微服務都須要註冊到註冊中心,若是這個註冊中心阻塞或者崩了,那麼整個系統都沒法繼續正常提供服務,因此,這裏就須要對註冊中心進行集羣,換言之,高可用(HA)
前提:spring

閱讀並完成第一個註冊中心的項目,環境無需改變。本文是模擬的高可用,能夠複製兩個註冊中心的項目單獨修改各自的配置文件達到一樣的效果
修改hosts,在文件末添加兩行以下:
127.0.0.1 peer1127.0.0.1 peer2瀏覽器

推薦使用notepad++,若是是win10會提醒提權限,肯定,而後保存便可。
項目搭建:架構

打開註冊中心的項目,在src/resources下建立一個application-peer1.properties
url=app

應用名spring.application.name=eureka-server#提供服務端口1111server.port=1111#提供服務的域名,這裏在hosts文件中修改了eureka.instance.hostname=peer1#向第二個註冊中心註冊本身eureka.client.service-url.defaultZone=http://peer2:1112/eureka/url=

 

在src/resources下建立一個application-peer2.properties
[url=]maven

 
[/url]ide

應用名稱與第一個註冊中心同樣spring.application.name=eureka-server#提供服務端口1112server.port=1112#提供服務的域名,這裏在hosts文件中修改了eureka.instance.hostname=peer2#向第一個註冊中心註冊本身eureka.client.service-url.defaultZone=http://peer1:1111/eureka/[url=]

 
[/url]
 微服務

本文使用idea進行測試,首先須要對這個項目進行打成jar包,由於在pom.xml中已經引入了maven編譯工具和打包工具並指定打包格式爲jar包,這裏直接操做,屏幕右上方
 工具

打包完成,該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,可是須要先添加一條配置,該值默認falseeureka.instance.prefer-ip-address=true

相關文章
相關標籤/搜索