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
啟動與測試
在啟動時,通過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/
可見,所有replica的狀態均可用。