1. 程式人生 > >springcloud Eureka 叢集

springcloud Eureka 叢集

Eureka 叢集測試

開始學習springcloud體系,記錄下相關筆記。配置叢集過程,參考不少帖子,碰到出現available-replicas 為空的情況,在https://github.com/Netflix/eureka/issues/1008 找到解決辦法

springcloud服務註冊管理叢集eureka

1、建立maven工程,新增eureka依賴,springboot2.1
在這注意裡插入圖片描述
注意spring-cloud-starter-netflix-eureka-server 的版本號需要新增,否則eureka的jar包有可能maven無法下載成功
2、啟動類新增 EnableEurekaServer 註解
在這裡插入圖片描述

3、在resource目錄新增application.yml 配置檔案,編寫叢集配置資訊

spring:
application:
name: eureka-server
profiles: discovery1
server:
port: 8761
eureka:
instance:
hostname: discovery1
client:
register-with-eureka: true
fetch-registry: true
preferIpAddress: false
serviceUrl:
defaultZone: http://discovery2:8762/eureka/,http://discovery3:8763/eureka/

spring:
application:
name: eureka-server
profiles: discovery2
server:
port: 8762
eureka:
instance:
hostname: discovery2
client:
register-with-eureka: true
fetch-registry: true
preferIpAddress: false
serviceUrl:
defaultZone: http://discovery1:8761/eureka/,http://discovery3:8763/eureka/

spring:
application:
name: eureka-server
profiles: discovery3
server:
port: 8763
eureka:
instance:
hostname: discovery3
client:
fetch-registry: true
register-with-eureka: true
preferIpAddress: false
serviceUrl:
defaultZone:

http://discovery1:8761/eureka/,http://discovery2:8762/eureka/

注意,applicaton的name屬性必須保持一致, name: eureka-server,出現available-replicas 為空就是該name屬性不一致導致的,如非該問題導致的,注意檢查application.yml檔案格式是否正常,檔案格式問題也會導致註冊失敗, 也有人說因為沒有設定preferIpAddress: false,經驗證不是這個原因,去掉該條件設定,也可以叢集註冊成功

4、修改hosts檔案,對映ip
127.0.0.1 discovery1
127.0.0.1 discovery2
127.0.0.1 discovery3

5、3個服務配置在同一個檔案中,在idea的啟動配置裡指定profiles應用不同配置 如下圖:active profiles
啟動3個服務後,訪問瀏覽器
http://discovery1:8761/
http://discovery2:8762/
http://discovery3:8763/

即可看到服務互相完成註冊,可用狀態
在這裡插入圖片描述
在這裡插入圖片描述

程式碼示例地址:https://github.com/skylordmin/eurekacluster