鉴于上篇内容提出的思考拓展部分,此部门其实就是做了 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