搭建eureka叢集
使用spring boot1.5.16版本,spring cloud版本選擇Edgware.SR4,新增eureka server的依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
在application.properties中設定應用名稱
spring.application.name=eureka-server eureka.instance.appname=eureka-server
還需要開啟eureka server之間的相互註冊和檢索服務
#是否將該例項資訊註冊到其他eureka server上;如果設定為false,那麼該server無法被其他server發現,但是仍然可以發現其他server
eureka.client.register-with-eureka=true
#是否允許該客戶端從eureka server上獲取註冊資訊
eureka.client.fetch-registry=true
我們使用主機名來定義註冊中心的地址,而不是ip,該配置預設就是false,所以可以不配
eureka.instance.prefer-ip-address=false
我們在同一臺機器上建立3個節點的eureka叢集,分別是peer1,peer2和peer3
修改hosts檔案,使peer1,peer2和peer3都指向127.0.0.1, 具體路徑是
C:\Windows\System32\drivers\etc\HOSTS
新增如下內容
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
然後在專案中建立3個配置檔案application-peer1.properties,application-peer2.properties和application-peer3.properties分別作為peer1,peer2和peer3節點的配置檔案。配置服務的埠和hostname,指定其他兩個eureka server,地址中的hostname應與配置的hostname相對應。
application-peer1.properties
server.port=1111
eureka.instance.hostname=peer1
eureka.client.service-url.defaultZone=http://peer2:1112/eureka/,http://peer3:1113/eureka
application-peer2.properties
server.port=1112
eureka.instance.hostname=peer2
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/,http://peer3:1113/eureka
application-peer3.properties
server.port=1113
eureka.instance.hostname=peer3
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka
編譯後,在target目錄下分別執行java -jar eureka-server-1.0.0.jar --spring.profiles.active = peer1,java -jar eureka-server-1.0.0.jar --spring.profiles.active = peer2和java -jar eureka-server-1.0.0.jar --spring.profiles.active = peer3,啟動3個eureka server。至此,3節點的eureka搭建完成。
訪問 http://localhost:1111 ,在peer1的頁面上可以看到,General Info的available-replicas有peer2和peer3節點,說明3個節點的eureka server相互註冊成功。如果available-replicas是空的,而unavailable-replicas有其他兩個節點,說明配置有問題,叢集搭建失敗。