目录
2.2 pom.xml、application.yml、application-7002.yml
1 注册中心集群原理
Eureka Server集群原理:互相注册,相互守望。如果一个微服务项目中只有一个注册中心,当注册中心出故障,那么对于系统来说就是灾难性的。注册中心一定要保证高可用,集群就是保障的手段。通过Eureka Server集群,实现负载均衡、故障容错。
2 注册中心集群配置
2.1 修改host文件
找到C:\Windows\System32\drivers\etc下的hosts文件,添加如下配置:
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
2.2 pom.xml、application.yml、application-7002.yml
pom.yml
<dependencies>
<!-- Eureka Server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 引入自定义的api通用包 -->
<dependency>
<groupId>com.bighuan.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.bighuan.springcloud.EurekaMain7001</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</dependencies>
application.yml
eureka-server7001的yml文件:
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名称
client:
# false表示不向注册中心注册自己
register-with-eureka: false
# false表示自己就是注册中心,职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
# 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
defaultZone: http://eureka7002.com:7002/eureka
application-7002.yml
eureka-server7002的yml文件:
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com #eureka服务端的实例名称
client:
# false表示不向注册中心注册自己
register-with-eureka: false
# false表示自己就是注册中心,职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
# 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
defaultZone: http://eureka7001.com:7001/eureka
两个Eureka Server互相注册,作为彼此的注册中心。如果有三个注册中心,那么就是一个Eureka Server向另外两个Eureka Server注册,以此类推。
3 分别启动注册中心
打包:
mvn clean package -Dmaven.test.skip=true
分别以eureka7001.com、eureka7002.com配置信息启动Eureka
java -jar cloud-eureka-server7001-1.0-SNAPSHOT.jar --spring.profiles.active=7001
java -jar cloud-eureka-server7001-1.0-SNAPSHOT.jar --spring.profiles.active=7002
分别访问http://eureka7001.com:7001/、http://eureka7002.com:7002/,从下图可以看到,可以看到Eureka Server7001的相邻节点为Eureka Server7002,而后者的相邻节点为前者。