集羣
註冊中心這麼關鍵的服務,如果是單點話,遇到故障就是毀滅性的。在一個分佈式系統中,服務註冊中心是最重要的基礎部分,理應隨時處於可以提供服務的狀態。爲了維持其可用性,使用集羣是很好的解決方案。Eureka通過互相註冊的方式來實現高可用的部署,所以我們只需要將Eureke Server配置其他可用的serviceUrl就能實現高可用部署。
雙節點註冊中心
首次我們嘗試一下雙節點的註冊中心的搭建。
1、創建application-peer1.properties,作爲peer1服務中心的配置,並將serviceUrl指向peer2
spring.application.name=spring-cloud-eureka
server.port=8000
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:8001/eureka/
2、創建application-peer2.properties,作爲peer2服務中心的配置,並將serviceUrl指向peer1
spring.application.name=spring-cloud-eureka
server.port=8001
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:8000/eureka/
3、host轉換
在hosts文件中加入如下配置
127.0.0.1 peer1
127.0.0.1 peer2
4、打包啓動
依次執行下面命令
#打包
mvn clean package
# 分別以peer1和peeer2 配置信息啓動eureka
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
依次啓動完成後,瀏覽器輸入:http://localhost:8000/
效果圖如下:
根據圖可以看出peer1的註冊中心DS Replicas已經有了peer2的相關配置信息,並且出現在available-replicas中。我們手動停止peer2來觀察,發現peer2就會移動到unavailable-replicas一欄中,表示peer2不可用。
到此雙節點的配置已經完成。
eureka集羣使用
在生產中我們可能需要三臺或者大於三臺的註冊中心來保證服務的穩定性,配置的原理其實都一樣,將註冊中心分別指向其它的註冊中心。這裏只介紹三臺集羣的配置情況,其實和雙節點的註冊中心類似,每臺註冊中心分別又指向其它兩個節點即可,使用application.yml來配置。
application.yml配置詳情如下:
---
spring:
application:
name: spring-cloud-eureka
profiles: peer1
server:
port: 8000
eureka:
instance:
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/
---
spring:
application:
name: spring-cloud-eureka
profiles: peer2
server:
port: 8001
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/
---
spring:
application:
name: spring-cloud-eureka
profiles: peer3
server:
port: 8002
eureka:
instance:
hostname: peer3
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/
分別以peer1、peer2、peer3的配置參數啓動eureka註冊中心。
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3
依次啓動完成後,瀏覽器輸入:http://localhost:8000/
效果圖如下:
可以在peer1中看到了peer2、peer3的相關信息。至此eureka集羣也已經完成了