Spring-Cloud Eureka注冊(cè)中心實(shí)現(xiàn)高可用搭建
前言:
spring-cloud為基礎(chǔ)的微服務(wù)架構(gòu),所有的微服務(wù)都需要注冊(cè)到注冊(cè)中心,如果這個(gè)注冊(cè)中心阻塞或者崩了,那么整個(gè)系統(tǒng)都無(wú)法繼續(xù)正常提供服務(wù),所以,這里就需要對(duì)注冊(cè)中心進(jìn)行集群,換言之,高可用(HA)
前提:
閱讀并完成第一個(gè)注冊(cè)中心的項(xiàng)目,環(huán)境無(wú)需改變。本文是 模擬的高可用 , 可以復(fù)制兩個(gè)注冊(cè)中心的項(xiàng)目單獨(dú)修改各自的配置文件達(dá)到同樣的效果
修改hosts,在文件末添加兩行如下:
127.0.0.1 peer1 127.0.0.1 peer2
推薦使用notepad++,如果是win10會(huì)提醒提權(quán)限,確定,然后保存即可。
項(xiàng)目搭建:
打開(kāi)注冊(cè)中心的項(xiàng)目,在src/resources下創(chuàng)建一個(gè)application-peer1.properties
#應(yīng)用名 spring.application.name=eureka-server #提供服務(wù)端口1111 server.port=1111 #提供服務(wù)的域名,這里在hosts文件中修改了 eureka.instance.hostname=peer1 #向第二個(gè)注冊(cè)中心注冊(cè)自己 eureka.client.service-url.defaultZone=http://peer2:1112/eureka/
在src/resources下創(chuàng)建一個(gè)application-peer2.properties
#應(yīng)用名稱與第一個(gè)注冊(cè)中心一樣 spring.application.name=eureka-server #提供服務(wù)端口1112 server.port=1112 #提供服務(wù)的域名,這里在hosts文件中修改了 eureka.instance.hostname=peer2 #向第一個(gè)注冊(cè)中心注冊(cè)自己 eureka.client.service-url.defaultZone=http://peer1:1111/eureka/
本文使用idea進(jìn)行測(cè)試,首先需要對(duì)這個(gè)項(xiàng)目進(jìn)行打成jar包,因?yàn)樵趐om.xml中已經(jīng)引入了maven編譯工具和打包工具并指定打包格式為jar包,這里直接操作,屏幕右上方


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

如圖打開(kāi)terminal,屏幕下方

打開(kāi)terminal之后,因?yàn)閖ar包在target目錄下,而當(dāng)前目錄為項(xiàng)目目錄,所以先cd到target目錄下,然后輸入如下命令:
小技巧:輸入命令的時(shí)候?yàn)榱朔乐馆斿e(cuò)文件名,可以輸入文件名的前幾個(gè)字母,然后使用tab鍵進(jìn)行自動(dòng)補(bǔ)全
輸入完成此命令后,peer1配置文件的項(xiàng)目啟動(dòng),如圖

接下來(lái)我們啟動(dòng)第二個(gè)項(xiàng)目,這里需要另開(kāi)一個(gè)terminal,cd到target目錄
注意:我們這里用的是同一個(gè)項(xiàng)目,讀者可以使用兩個(gè)項(xiàng)目進(jìn)行測(cè)試,需要特別注意的是端口不要沖突了


等待項(xiàng)目啟動(dòng)完成,查看有無(wú)報(bào)錯(cuò)。
測(cè)試:
瀏覽器輸入:localhost:1112進(jìn)行查看,也可以輸入localhost:1111進(jìn)行查看

結(jié)語(yǔ):
在設(shè)置了多節(jié)點(diǎn)的注冊(cè)中心后,實(shí)現(xiàn)了高可用,但是此時(shí)我們的微服務(wù)應(yīng)用僅僅是注冊(cè)到這一個(gè)服務(wù)之中,所以,我們需要將新節(jié)點(diǎn)的注冊(cè)服務(wù)路徑同樣配到微服務(wù)應(yīng)用中。
多節(jié)點(diǎn)間使用","分開(kāi),如圖

這樣微服務(wù)提供者從其中一個(gè)地方斷開(kāi)之后,因?yàn)樵谄渌?jié)點(diǎn)有注冊(cè),所以還可以提供服務(wù),如果不想使用主機(jī)名進(jìn)行訪問(wèn)注冊(cè)中心,也可以使用ip,但是需要先添加一條配置,該值默認(rèn)false
eureka.instance.prefer-ip-address=true
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java調(diào)用商品詳情API的項(xiàng)目實(shí)踐
在現(xiàn)代電子商務(wù)網(wǎng)站中,商品詳情API是一個(gè)重要的組件,本文就來(lái)介紹一下Java調(diào)用商品詳情API的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
Java語(yǔ)言多線程終止中的守護(hù)線程實(shí)例
這篇文章主要介紹了Java語(yǔ)言多線程終止中的守護(hù)線程實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12
SpringBoot使用JavaMailSender實(shí)現(xiàn)發(fā)送郵件+Excel附件
項(xiàng)目審批完畢后,需要發(fā)送郵件通知相關(guān)人員,并且要附帶數(shù)據(jù)庫(kù)表生成的Excel表格,這就要求不光是郵件發(fā)送功能,還要臨時(shí)生成Excel表格做為附件,本文詳細(xì)介紹了SpringBoot如何使用JavaMailSender實(shí)現(xiàn)發(fā)送郵件+Excel附件,需要的朋友可以參考下2023-10-10
詳談@Cacheable不起作用的原因:bean未序列化問(wèn)題
這篇文章主要介紹了@Cacheable不起作用的原因:bean未序列化問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
在Ubuntu系統(tǒng)下安裝JDK和Tomcat的教程
這篇文章主要介紹了在Ubuntu系統(tǒng)下安裝JDK和Tomcat的教程,這樣便是在Linux系統(tǒng)下搭建完整的Java和JSP開(kāi)發(fā)環(huán)境,需要的朋友可以參考下2015-08-08
java多線程處理執(zhí)行solr創(chuàng)建索引示例
這篇文章主要介紹了java多線程處理執(zhí)行solr創(chuàng)建索引示例,需要的朋友可以參考下2014-02-02

