前面章节介绍了怎样实现 Eureka server 集群配置。为了模拟多个 Eureka server 我们创建了三个 Eureka server 项目,这些项目唯一不同的是配置文件,其他代码都是一样的。本章节将演示只创建一个 Eureka server 项目,利用 Spring Boot 的 profile 特性来实现运行程序时,通过 JVM 参数(使用 -D 指定)动态决定激活那个 profile。先看看项目结构,如下图:

上图中,我们为项目创建了四个 yml 格式的配置文件。其中,application-peer1.yml、application-peer2.yml 和 application-peer3.yml 用来配置三个不同的 Eureka server 节点,具体配置方法下面将逐一介绍。
# 服务名称
spring:
profiles:
active: ${profile_active}
application:
name: eureka-server上面配置了 Eureka server 的名称,以及定义 profiles 激活引用 profile_active 变量,该变量可以通过 JVM 参数指定,例如:-Dprofile_active=peer1。
# 服务端口
server:
port: 8077
eureka:
instance:
hostname: peer1
client:
# 向注册中心注册自己
register-with-eureka: true
# 取消检索服务
fetch-registry: true
# 其他节点地址
service-url:
defaultZone: http://peer2:8078/eureka/,http://peer3:8079/eureka/# 服务端口
server:
port: 8078
eureka:
instance:
hostname: peer2
client:
# 向注册中心注册自己
register-with-eureka: true
# 取消检索服务
fetch-registry: true
# 其他节点地址
service-url:
defaultZone: http://peer1:8077/eureka/,http://peer3:8079/eureka/# 服务端口
server:
port: 8079
eureka:
instance:
hostname: peer3
client:
# 向注册中心注册自己
register-with-eureka: true
# 取消检索服务
fetch-registry: true
# 其他节点地址
service-url:
defaultZone: http://peer1:8077/eureka/,http://peer2:8078/eureka/打开IDEA的 Run/Debug 配置页面,配置三个运行程序,使用 -D 指定不同的 profile_active 值。如下图:

然后分别运行 EurekaServerApplication8077、EurekaServerApplication8078 和 EurekaServerApplication8079 三个程序。最后使用浏览器访问 http://localhost:8077 ,如下图:
