Spring cloud Eureka 服务治理(高可用服务中心)
在微服务的架构中,我们考虑发生故障的情况,所以在生产环境中我们需要对服务中各个组件进行高可用部署。
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. 启动完成
6. 访问 http://peer1:1111/ 截图如下:
7. 访问 http://peer2:1112/ 截图如下:
8. 如果我们停掉一个服务,我们会发现这个服务会变成这个状态 unavailable-replicas 状态
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 结果:
http://peer2:1112结果: