Spring Cloud入門:高可用服務註冊中心
阿新 • • 發佈:2018-12-16
文章例項使用的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的註冊中心:http://localhost:1002/ ,可以看到registered-replicas中已經有peer2節點的eureka-server了。同樣地,訪問peer2的註冊中心:http://localhost:1003/ ,能看到registered-replicas中已經有peer1節點,並且這些節點在可用分片(available-replicase)之中:
3 修改eureka-client,修改註冊中心地址同時指向peer1和peer2註冊中心:
#指定註冊中心地址
eureka.client.serviceUrl.defaultZone=http://peer2:1002/eureka/,http://peer2:1003/eureka/