1. 程式人生 > >SpringCloud從入門到進階(四)——生產環境下Eureka的完全分散式部署

SpringCloud從入門到進階(四)——生產環境下Eureka的完全分散式部署

內容

  由於前兩節的內容我們知道,開啟了preferIpAddress後,Eureka的偽分散式部署會提示replica不可用。這一節我們講解如何在生產環境下部署完全分散式的Eureka叢集,確保開啟了preferIpAddress後replica的可用性。

版本

  IDE:IDEA 2017.2.2 x64

  JDK:1.8.0_171

  manve:3.3.3

  SpringBoot:1.5.9.RELEASE

  SpringCloud:Dalston.SR1

適合人群

  Java開發人員

節點資訊:

  節點A的IP為:172.26.125.118

  節點B的IP為:172.26.125.114

  節點C的IP為:172.26.125.115

說明

  轉載請說明出處:SpringCloud從入門到進階(四)——生產環境下Eureka的完全分散式部署

  三臺伺服器都需要安裝好JDK,可以參考:Linux入門實踐筆記(一)——安裝JDK與執行jar包

步驟

  Eureka的完全分散式部署與偽分散式部署大同小異,只是yaml配置檔案和啟動方式不同。專案結構、pom.xml檔案、主啟動類的配置,以及專案打包、部署的操作都幾乎一樣,請參考SpringCloud從入門到進階(二)——註冊中心Eureka的偽分散式部署

yaml

  在單臺主機進行偽分散式部署時,三個Eureka例項的埠號是不同的。但是完全分散式部署是在不同的主機中執行不同的Eureka例項,埠號保持一致便於管理。同時例項的名稱要能體現主機的資訊。此外,由於開啟了preferIpAddress,在配置service-url的時候需要使用ip地址,而不是域名。

#將公共部分提取出來,比如埠號、例項名等配置
spring:
  application:
   name: application-eurekaserver
server:
  port: 7001
eureka:
  instance:
    #要求Client通過ip的方式進行註冊
   prefer-ip-address: true
  client:
   register-with-eureka: true
   fetch-registry: true
#actuator
management:
  #配置了Actuator對外暴露REST API介面的埠號,如果不指定,埠為應用程式的啟動埠,這樣做的目的是將程式埠和程式的監控埠分開。
  port: 
7101 #Actuator 採取非安全驗證方式,l.5x 版本預設開啟了 Actuator 的安全驗證。• security: enabled: false --- spring: profiles: peer1 eureka: instance: instance-id: springcloud-eurekaserver-A8-118 client: service-url: defaultZone: http://172.26.125.114:7001/eureka,http://172.26.125.115:7001/eureka --- spring: profiles: peer2 eureka: instance: instance-id: springcloud-eurekaserver-A6-114 client: service-url: defaultZone: http://172.26.125.118:7001/eureka,http://172.26.125.115:7001/eureka --- spring: profiles: peer3 eureka: instance: instance-id: springcloud-eurekaserver-A2-115 client: service-url: defaultZone: http://172.26.125.118:7001/eureka,http://172.26.125.114:7001/eureka

  在github上檢視配置檔案

啟動與測試

  在啟動時,通過JVM引數-Dspring.profiles.active選擇專案啟動的profiles。此處還設定了虛擬機器堆空間的最小值為512mb,堆空間的最大值為1024mb。

#請根據你的機器配置設定合適的堆空間引數。
#在節點A上執行
[[email protected]172.26.125.118 jars]$ java -Xms512m -Xmx1024m -Dspring.profiles.active=peer1 -jar eurekaserver-1.0-SNAPSHOT.jar &
#在節點B上執行
[[email protected]172.26.125.114 jars]$ java  -Xms512m -Xmx1024m -Dspring.profiles.active=peer2  -jar eureka-server-7001-7002-1.0-SNAPSHOT.jar  
#在節點C上執行
[[email protected]172.26.125.115 jars]$ java  -Xms512m -Xmx1024m -Dspring.profiles.active=peer3  -jar eureka-server-7001-7002-1.0-SNAPSHOT.jar  

驗證

  確保本地能訪問到這三臺eureka伺服器,訪問http://172.26.125.118:7001/

1541844454878

  訪問http://172.26.125.114:7001/

1541845335259

  訪問http://172.26.125.115:7001/

1541845356430

  可見,所有replica的狀態均可用。