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

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

分開 -s rip linux mas 此外 實例名 leo 版本

內容

  由於前兩節的內容我們知道,開啟了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上運行
[ServerA@172.26.125.118 jars]$ java -Xms512m -Xmx1024m -Dspring.profiles.active=peer1 -jar eurekaserver-1.0-SNAPSHOT.jar &
#在節點B上運行
[ServerB@172.26.125.114 jars]$ java  -Xms512m -Xmx1024m -Dspring.profiles.active=peer2  -jar eureka-server-7001-7002-1.0-SNAPSHOT.jar  
#在節點C上運行
[ServerC@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/

技術分享圖片

  訪問http://172.26.125.114:7001/

技術分享圖片

  訪問http://172.26.125.115:7001/

技術分享圖片

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

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