前面章节介绍了怎样实现 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 ,如下图: