內容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的僞分佈式部署。
在單臺主機進行僞分佈式部署時,三個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上運行 [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/
可見,全部replica的狀態都可用。