鉴于上篇内容提出的思考拓展部分,此部门其实就是做了 application.yaml 的配置文件的更改。此篇的 Demo 通过单节点多端口来模拟多节点分布的 Eureka Server HA 集群。由于篇幅比较简单,我就直接将 microservice-discovery-eureka 做了 yaml 配置文件更改最终输出为 microservice-discovery-eureka-ha 的模块,就暂且不实现生产者服务和消费者服务了。
Eureka Server HA
microservice-discovery-eureka-ha
- application.yaml 文件如下:
spring:
application:
name: microserver-discovery-eureka-ha
#eureka:
# client:
# service-url:
# defaultZone: http://peer1:8001/eureka/,http://peer2:8002/eureka/
---
spring:
profiles: peer1
server:
port: 8001
eureka:
instance:
hostname: peer1
client:
service-url:
defaultZone: http://peer2:8002/eureka/
# fetch-registry: true
# register-with-eureka: true
---
spring:
profiles: peer2
server:
port: 8002
eureka:
instance:
hostname: peer2
client:
service-url:
defaultZone: http://peer1:8001/eureka/
# fetch-registry: true
# register-with-eureka: true
- 配置本地 hosts 文件:
由于是本地单节点模拟,为了能够解析到 domain 需要加如下配置
127.0.0.1 peer1
127.0.0.1 peer2
- 通过 package 打成 jar 包运行
java -jar microservice-discovery-eureka-ha/target/microservice-discovery-eureka-ha-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 java -jar microservice-discovery-eureka-ha/target/microservice-discovery-eureka-ha-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
验证
成功运行后会嗨皮发现最终页面如下:

当然这是我在浏览器输入 http://peer1:8001 得到的输出
然后我们可以通过启动上篇的生产者服务和消费者服务,然后将其中的一个 Eureka Server 宕掉,发现服务还是可用的,即完成了验证。
此章节 demo 示例代码:chapter2-2