SpringCloud從入門到進階(四)——生產環境下Eureka的徹底分佈式部署

內容html

  因爲前兩節的內容咱們知道,開啓了preferIpAddress後,Eureka的僞分佈式部署會提示replica不可用。這一節咱們講解如何在生產環境下部署徹底分佈式的Eureka集羣,確保開啓了preferIpAddress後replica的可用性。java

版本git

  IDE:IDEA 2017.2.2 x64github

  JDK:1.8.0_171spring

  manve:3.3.3安全

  SpringBoot:1.5.9.RELEASE服務器

  SpringCloud:Dalston.SR1app

適合人羣分佈式

  Java開發人員post

節點信息:

  節點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/

1541844454878

  訪問http://172.26.125.114:7001/

1541845335259

  訪問http://172.26.125.115:7001/

1541845356430

  可見,全部replica的狀態都可用。

相關文章
相關標籤/搜索