centos7環境搭建Eureka-Server註冊中心叢集
目的:測試和線上使用這套獨立的Eureka-Server註冊中心叢集,目前3臺虛擬機器叢集,後續可直接修改配置檔案進行新增或減少叢集機器。
系統環境:
Centos7x64
java8+(JDK1.8+)(java –version 確保java沒問題。注意新增環境變數)
埠:8761
各peer節點分別為:
192.168.1.134 peer1
192.168.1.27 peer2
192.168.1.152 peer3
一 建立專案
注意!注意!注意 這裡有個IDEA的坑
開始引入相關的 eureka-server的包,如下圖
開啟專案下 src/main/java/com.jinti.eureka2/Eureka2Application 按照步驟來,其中1 2需要自己手動敲程式碼。
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @EnableEurekaServer
引入後可能需要下載相關依賴包,這個IDEA會自動完成。如果網路好就很快,如果沒下載好可能會導致程式碼提示錯誤。
其中3 pom.xml我這邊沒修改過,是IDEA根據專案自動生成,基本上夠用。
配置好src/main/java/resource裡的專案,我們有3個peer,選一個application-peer1.properties為例:
#spring.application.name 所有節點要一致 spring.application.name=eureka-server eureka.instance.hostname=192.168.1.134 spring.profiles.active=peer1 #如下一般不用修改 server.port=8761 eureka.client.fetch-registry=true eureka.client.register-with-eureka=true #instance-id使得狀態status顯示為ip eureka.instance.instance-id=${eureka.instance.hostname}:${server.port} #sdefaultZone裡使用的是eureka.instance.hostname,因為hostname是IP,然後註冊中心就使用IP註冊,不會出現unavailable-replicas eureka.client.serviceUrl.defaultZone=http://192.168.1.27:8761/eureka/,http://192.168.1.152:8761/eureka/
其中需要更改的地方:
eureka.client.serviceUrl.defaultZone 裡設定的IP是除了本身外的其他2個peer的IP和埠
eureka.instance.hostname 這裡改為本機的IP,後續顯示狀態的時候用到。
spring.profiles.active 為節點暱稱,不知道為什麼我用IP,後面啟動帶參的時候不行,用peer或者其他暱稱也不錯。
其他說明:
因為做了叢集相互發現和註冊,如下設定為true
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true
依次分別設定好3個配置檔案,分別啟動3個節點在IDEA內測試,可參考:https://www.cnblogs.com/hfultrastrong/p/8549590.html
如果測試沒有錯就開始打包部署了。
二 maven打包jar執行和部署
如下圖所示:
已編譯:eureka2-0.0.1-SNAPSHOT.jar
已配置:eureka2-0.0.1-SNAPSHOT.jar\BOOT-INF\classes下
application-peer1.properties、 application-peer2.properties、application-peer3.properties
打包後就是一個完整的jar包,如上圖5所示。找到這個eureka2-0.0.1-SNAPSHOT.ja 就可以上傳到peer機器上跑了。
各節點 分別 執行 對應的啟動命令,因為properties裡寫固定了peer對應的機器
java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 &
java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2 &
java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3 &
比如peer1 對應機器 192.168.1.134,則在134這邊執行,以此類推
java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 &
如果埠正常起來,因為其他節點還沒起來,可能會報一下同步錯誤,等其他節點都起來就沒問題了。
關閉: kill pid
網頁訪問 http://peerIP:8761,各節點replicas 分片正常即可。
三 後續新增或減少eureka叢集的機器
通過修改eureka2-0.0.1-SNAPSHOT.jar\BOOT-INF\classes裡的application-peer*.properties配置檔案並覆蓋即可。
完整的jar下載:
連結: https://pan.baidu.com/s/1cb0XYt3-sb3SAOzee0Q0nQ
提取碼: 6ww8
Done!!