高可用Eureka注冊中心配置說明(雙機部署)


目  錄

1. 高可用EureKa注冊中心示意圖

2. Eureka實例相互注冊配置

3. 微服務注冊到Eureka配置

4. 啟動步驟及配置成功檢查

5. 說明事項

1. 高可用EureKa注冊中心示意圖

Spring Cloud的Eureka Server的高可用實際上就是將自己作為服務向其他服注冊中心注冊自己,形成一組互相注冊的服務注冊中心,以實現服務清單的互相同步,達到高可用的效果。

如下圖,Eureka server 1, Eureka server 2相互感應,當有服務注冊時,多個Eureka-server是對等的,它們都存有相同的信息,這就是通過服務器的冗余來增加可靠性,當有一台服務器宕機了,服務並不會終止,因為另一台服務存有相同的數據。

2. Eureka實例相互注冊配置

Eureka通過運行多個實例,使其更具有高可用性,這是它默認的屬性,需要做的就是給對等的實例一個合法的關聯serviceUrl,分別配置Eureka多個實例的application.yml 使其相互注冊。

比如有兩個eureka服務,分別部署在兩台服務器上。

第1個Eureka 配置文件application.yml如下:

 

第2個Eureka 配置文件application.yml如下:

項目中Eureka配置非常簡單,分別部署在兩台機器上,只須按如下配置每個Eureka並修改defaultZone中的server1-IP 和 server2-IP ,根據實際情況改為服務器具體的IP即可。

配置完上述步驟,兩個Eureka服務相互注冊,即可啟用Eureka的HA屬性。

3. 微服務注冊到Eureka配置

比如,tpp-acc注冊到Eureka

配置文件中,eureka.client.serviceUrl.defaultZone 增加以上多個Eureka對應的URL:

 

4. 啟動步驟及配置成功檢查

先啟動Eureka1Application,Eureka2Application,然后啟動其他的微服務

每個注冊中心的available-replicas都出現另外的注冊中心的服務,則說明搭建成功。

 

例如:

我本機分別啟動了三個Eureka實例,由於我本地是單機環境,分別通過機器IP、127.0.0.1和localhost作為三個Eureka的hostname,如下:

http://172.20.16.198:8761/

http://127.0.0.1:8762/

http://localhost:8763/

每個注冊中心的available-replicas都出現其他兩個注冊中心的服務,說明搭建成功。

如下圖,其中http://localhost:8763/ 可以看到其他8761  8762兩個服務。

另外,啟動example-service:8080進行注冊,在每個注冊中心都能看到相同的服務已注冊。

當關掉其中一台Eureka服務時,則出現在unavailable-replicas中,如下圖。

5. 說明事項

Eureka互相注冊要求各個Eureka實例的eureka.instance.hostname不同,如果相同,則會被Eureka標記為unavailable-replicas。

把eureka.instance.hostname取了${spring.cloud.client.ipAddress}的值,這個值取的是當前啟動Eureka的機器的IP,這樣雖然配置一樣但卻自動區分了每台機器的Eureka,這時我們再取prefer-ip-address: true,就可以確保機器優先使用IP而不是到hosts解析域名。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM