1、簡介
非分區叢集部署是Eureka一種簡單的叢集部署方式,這種方式下叢集中的Eureka Server不分區。通常情況下,如果我們的Eureka伺服器都在同一個機房中,可以采取這種方式叢集部署。
2、修改hosts檔案
由于我在Windows環境下啟動多個Eureka服務模拟叢集部署,是以先修改C:\Windows\System32\drivers\etc\hosts檔案,以便于正确的域名尋址(不修改直接使用127.0.0.1也一樣)
3、Eureka Server搭建
我這裡一共搭建四個Eureka Server,為了友善看清楚整個Eureka Server的叢集方式和啟動過程,我搭建了四個Eureka Server,分别是Eureka-01、Eureka-02、Eureka-03、Eureka-04。如果覺得服務過多可以建立不同的profile,在啟動Eureka Server時指定不同的profile即可。
第一步:引入pom依賴,我這裡采用spring-cloud版本為Greenwich.SR1
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.liziba</groupId>
<artifactId>spring-cloud-netflix-demo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>Eureka-01</module>
<module>Eureka-02</module>
<module>Eureka-03</module>
<module>Eureka-04</module>
</modules>
<properties>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
## 端口
server:
port: 18881
## 服務名稱
spring:
application:
name: Eureka-01
## Eureka 配置資訊
eureka:
instance:
hostname: eureka18881.com
client:
service-url:
defaultZone: http://eureka18882.com:18882/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/
register-with-eureka: true
fetch-registry: true
第四步:再建立三個相同的應用,修改對應端口資訊、服務名稱、叢集位址,比如Application_EurekaServer02的配置檔案如下所示。
1.
## 修改端口
server:
port: 18882
## 修改應用名
spring:
application:
name: Eureka-02
## 修改執行個體hostname
eureka:
instance:
hostname: eureka18882.com
client:
service-url:
## defaultZone中配置其他三台伺服器位址,剔除自己
defaultZone: http://eureka18881.com:18881/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/
register-with-eureka: true
fetch-registry: true
第五步:服務啟動,依次啟動四個Eureka Server,等服務均啟動成功後,通路Eureka Dashboard,檢視叢集資訊。每個Eureka Dashboard中均可以看到四台服務注冊資訊展示在Instances currently registered with Eureka中,服務注冊的名字Application 是配置檔案中提供的spring.application.name應用配置名稱;DS Replicas中展示的是defaultZone叢集資訊,展示的名稱是對應Eureka Server配置檔案中配置的eureka.instance.hostname
server:
port: 19991
spring:
application:
name: client-01
eureka:
client:
service-url:
defaultZone: http://eureka18881.com:18881/eureka/,http://eureka18882.com:18882/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/