1. 程式人生 > >搭建eureka叢集

搭建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有其他兩個節點,說明配置有問題,叢集搭建失敗。