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:
注意,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/
即可看到服務互相完成註冊,可用狀態
在這裡插入圖片描述