1. 程式人生 > >Spring Cloud入門:高可用服務註冊中心

Spring Cloud入門:高可用服務註冊中心

文章例項使用的Spring Cloud版本為Finchley.SR1,Spring Boot版本為2.0.4

1 高可用服務註冊中心

上一節服務註冊與服務發現 中,我們嘗試了服務註冊中心的構建,但在微服務架構這樣的分散式環境中,我們需要充分考慮發生故障的情況,所以在生產環境中必須對各個元件進行高可用部署,Eureka Server的高可用是通過啟動多例項,並將自己作為服務向其他服務註冊中心註冊自己,最終形成的一組相互註冊的服務註冊,以實現服務清單的互相同步,達到高可用的效果。

2 雙節點服務註冊中心例項

2.1 修改上一節的application.properties配置檔案,並增加application-peer1.properties和application-peer2.properties兩個配置檔案

application.properties

spring.application.name=eureka-server
#server.port=1001

#主機名
#eureka.instance.hostname=localhost

#向註冊中心註冊自己
eureka.client.register-with-eureka=true

#允許客戶端向Eureka 登錄檔獲取資訊
eureka.client.fetch-registry=true

application-peer1.properties

server.port=1002

#主機名
eureka.instance.hostname=peer1

#例項預設通過使用域名形式註冊到註冊中心:false
eureka.instance.prefer-ip-address=false

#例項名
eureka.instance.instance-id=${eureka.instance.hostname}:${server.port}

#指定另一個服務註冊中心的位置
eureka.client.serviceUrl.defaultZone=http://peer2:1003/eureka/

application-peer2.properties

server.port=1003

#主機名
eureka.instance.hostname=peer2

#例項預設通過使用域名形式註冊到註冊中心:false
eureka.instance.prefer-ip-address=false

#例項名
eureka.instance.instance-id=${eureka.instance.hostname}:${server.port}

#指定另一個服務註冊中心的位置
eureka.client.serviceUrl.defaultZone=http://peer1:1002/eureka/

修改C:\Windows\System32\drivers\etc\hosts檔案,新增對peer1和peer2的轉換

127.0.0.1       peer1
127.0.0.1       peer2

2.2 通過設定–spring.profiles.active引數,分別載入application-peer1.properties和application-peer2.properties配置檔案啟動服務註冊中心例項

開啟http://localhost:1002/和http://localhost:1003/,可以看到peer1和peer2在服務註冊中心相互註冊的結果:
peer1
peer2
訪問peer1的註冊中心:http://localhost:1002/ ,可以看到registered-replicas中已經有peer2節點的eureka-server了。同樣地,訪問peer2的註冊中心:http://localhost:1003/ ,能看到registered-replicas中已經有peer1節點,並且這些節點在可用分片(available-replicase)之中:
peer1
peer2

3 修改eureka-client,修改註冊中心地址同時指向peer1和peer2註冊中心:

#指定註冊中心地址
eureka.client.serviceUrl.defaultZone=http://peer2:1002/eureka/,http://peer2:1003/eureka/