溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

發(fā)布時間:2020-10-14 21:07:02 來源:腳本之家 閱讀:159 作者:東北小狐貍 欄目:編程語言

前言:

spring-cloud為基礎(chǔ)的微服務(wù)架構(gòu),所有的微服務(wù)都需要注冊到注冊中心,如果這個注冊中心阻塞或者崩了,那么整個系統(tǒng)都無法繼續(xù)正常提供服務(wù),所以,這里就需要對注冊中心進行集群,換言之,高可用(HA)

前提:

閱讀并完成第一個注冊中心的項目,環(huán)境無需改變。本文是 模擬的高可用 , 可以復(fù)制兩個注冊中心的項目單獨修改各自的配置文件達到同樣的效果

修改hosts,在文件末添加兩行如下:

127.0.0.1 peer1
127.0.0.1 peer2

推薦使用notepad++,如果是win10會提醒提權(quán)限,確定,然后保存即可。

項目搭建:

打開注冊中心的項目,在src/resources下創(chuàng)建一個application-peer1.properties

#應(yīng)用名
spring.application.name=eureka-server
#提供服務(wù)端口1111
server.port=1111
#提供服務(wù)的域名,這里在hosts文件中修改了
eureka.instance.hostname=peer1
#向第二個注冊中心注冊自己
eureka.client.service-url.defaultZone=http://peer2:1112/eureka/

在src/resources下創(chuàng)建一個application-peer2.properties

#應(yīng)用名稱與第一個注冊中心一樣
spring.application.name=eureka-server
#提供服務(wù)端口1112
server.port=1112
#提供服務(wù)的域名,這里在hosts文件中修改了
eureka.instance.hostname=peer2
#向第一個注冊中心注冊自己
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/

本文使用idea進行測試,首先需要對這個項目進行打成jar包,因為在pom.xml中已經(jīng)引入了maven編譯工具和打包工具并指定打包格式為jar包,這里直接操作,屏幕右上方

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

打包完成,該jar包位于target文件夾下,如圖

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

如圖打開terminal,屏幕下方

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

打開terminal之后,因為jar包在target目錄下,而當前目錄為項目目錄,所以先cd到target目錄下,然后輸入如下命令:

小技巧:輸入命令的時候為了防止輸錯文件名,可以輸入文件名的前幾個字母,然后使用tab鍵進行自動補全

復(fù)制代碼 代碼如下:
java -jar EurekaServerDemo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1

輸入完成此命令后,peer1配置文件的項目啟動,如圖

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

接下來我們啟動第二個項目,這里需要另開一個terminal,cd到target目錄

注意:我們這里用的是同一個項目,讀者可以使用兩個項目進行測試,需要特別注意的是端口不要沖突了

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

復(fù)制代碼 代碼如下:
java -jar EurekaServerDemo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

等待項目啟動完成,查看有無報錯。

測試:

瀏覽器輸入:localhost:1112進行查看,也可以輸入localhost:1111進行查看

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

結(jié)語:

在設(shè)置了多節(jié)點的注冊中心后,實現(xiàn)了高可用,但是此時我們的微服務(wù)應(yīng)用僅僅是注冊到這一個服務(wù)之中,所以,我們需要將新節(jié)點的注冊服務(wù)路徑同樣配到微服務(wù)應(yīng)用中。

多節(jié)點間使用","分開,如圖

Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建

這樣微服務(wù)提供者從其中一個地方斷開之后,因為在其他節(jié)點有注冊,所以還可以提供服務(wù),如果不想使用主機名進行訪問注冊中心,也可以使用ip,但是需要先添加一條配置,該值默認false

eureka.instance.prefer-ip-address=true

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI