Spring cloud Eureka 服务治理(高可用服务中心)

时间:2021-02-07 16:42:48

在微服务的架构中,我们考虑发生故障的情况,所以在生产环境中我们需要对服务中各个组件进行高可用部署。

 

Eureka Server 的高可用实际上就是将自己作为服务想其它服务注册中心注册自己,这样就形成了一组互相注册的服务中心,

以实现服务清单 的互相同步,达到高可用的效果。

 

1. 创建 application-peer1.properties ,作为peer1服务中心的配置,并将serviceUrl 指向 peer2

spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/

 

2. 创建 application-pee2.properties , 作为peer2服务中心的配置,比将serviceUrl 指向 peer1

spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/

 

3. 在本地HOST文件中添加配置,让上面配置的host形式的serviceUrl能在本地正确访问到

127.0.0.1 peer1  
127.0.0.1 peer2

 

4. 通过spring.profiles.active 属性来分别启动peer1, peer2

java -jar eureka-server-0.0.1.jar --spring.profiles.active=peer1
java -jar eureka-server-0.0.1.jar --spring.profiles.active=peer2

 

 

5. 启动完成

Spring cloud Eureka 服务治理(高可用服务中心)

6. 访问 http://peer1:1111/ 截图如下:

Spring cloud Eureka 服务治理(高可用服务中心)

 

 

7. 访问 http://peer2:1112/ 截图如下:

 Spring cloud Eureka 服务治理(高可用服务中心)

 

8. 如果我们停掉一个服务,我们会发现这个服务会变成这个状态 unavailable-replicas 状态

Spring cloud Eureka 服务治理(高可用服务中心)

 

9. 向服务中心注册服务,我们使用之前/hello 程序,改造一下,并向我们搭建的高可用服务注册中心注册服务,修改application.properties 文件,如下:

 

# 指定应用名称
spring.application.name= hello-service

# 构建服务中心的地址
eureka.client.serviceUrl.defaultZone= http://peer1:1111/eureka/,http://peer2:1112/eureka/

 

10. 启动之后,就可以在服务注册中心看到我们注册上的服务了,截图如下:

http://peer1:1111 结果:

Spring cloud Eureka 服务治理(高可用服务中心)

 

 http://peer2:1112结果:

 Spring cloud Eureka 服务治理(高可用服务中心)