1. 程式人生 > >SpringCloud微服務系列(3): 為已有的Eureka Server增加高可用HA

SpringCloud微服務系列(3): 為已有的Eureka Server增加高可用HA

SpringCloud微服務系列(3): 為已有的Eureka Server增加高可用HA 摘要:在本系列的前兩篇先後建立了一個Eureka微服務註冊中心和一個hello服務,該服務註冊到了Eureka Server。但一個註冊中心會存在單點故障,如果服務註冊中心掛了,系統就找不到服務。本文為註冊中心增加高可用功能。 第一步:準備兩臺Eureka高可用測試機 先準備兩臺主機,可用Ubuntu或者CentOS,將它們配置在一個網段(可用虛擬機器),這裡用CentOS7.3。假設它們的IP地址分別為10.191.30.24和10.191.30.25. 將/etc/hostname分別改為eureka1和eureka2,改完需要重啟作業系統。 在/etc/hosts中加入如下配置:
10.191.30.24 eureka1
10.191.30.25 eureka2
第二步:配置高可用Eureka Server 在原有Eureka Server基礎上增加兩個application.properties配置檔案,分別如下: [1] application-eureka1.properties
spring.application=eureka-server
server.port=1111
eureka.instance.hostname=eureka1
eureka.client.serviceUrl.defaultZone=http://eureka2:1112/eureka
[2] application-eureka2.properties
spring.application=eureka-server
server.port=1112
eureka.instance.hostname=eureka2
eureka.client.serviceUrl.defaultZone=http://eureka1:1111/eureka
說明: (1) eureka server1的監聽埠為1111,eureka server2的監聽埠為1112; (2) 它們各自的serviceUrl指向對方; 第三步:啟動eureka1和eureka2 [1] 在主機eureka1啟動
java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=eureka1
[2] 在主機eureka2啟動
java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=eureka2
啟動之後,登入http://10.191.30.24:1111/和http://10.191.30.25:1112/可以分別在DS Replicas看到註冊的eureka2和eureka1.


第四步:修改之前建立好的RESTFul服務 修改springboot hello service的application.properties配置檔案
spring.application.name=hello-service
eureka.client.serviceUrl.defaultZone=http://eureka1:1111/eureka,http://eureka2:1112/eureka
如果配置用IP地址,需要新增引數eureka.instance.prefer-ip-address=true。 第五步:啟動hello-service的RESTFul服務 注意:下面的這臺主機的/etc/hosts中需要加入如下部分,否則會不認識上面application.properties中配置的主機名。
10.191.30.24 eureka1
10.191.30.25 eureka2
在另外一臺主機(如:10.191.30.23)執行如下命令啟動服務:
java -jar springboot-0.0.1-SNAPSHOT.jar
檢視註冊情況,可看到兩臺eureka server都註冊了hello-servcie,如下所示:

一個服務(如hello-service)同時在兩個註冊中心註冊成功,這樣確保註冊中心的高可用。另外,經過測試,註冊中心重啟後,服務也會自動重新註冊進來。
參考資料: