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/