阅读背景:

笔记:Spring Cloud Eureka 高可用注册中心

来源:互联网 

在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心,已实现服务清单的互相同步,达到高可用效果,下面的示例构建一个服务注册中心集群,在配置单个服务注册中心的基础上进行扩展,示例代码如下:

  • 创建 application-server1.properties 作为服务注册中心集合的 server1 注册中心,并将 serviceUrl 指向 server2 注册中心,配置如下:

    server.port=1111

    spring.application.name=eureka-server

      

    eureka.instance.hostname=eurekaserver1

    eureka.client.service-url.defaultZone=https://eurekaserver2:1112/eureka

  • 创建 application-server2.properties 作为服务注册中心集合的server2 注册中心,并将serviceUrl指向server1 注册中心,配置如下:

    server.port=1112

    spring.application.name=eureka-server

      

    eureka.instance.hostname=eurekaserver2

    eureka.client.service-url.defaultZone=https://eurekaserver1:1111/eureka

  • /etc/hosts文件中添加对eurekaserver1 eurekaserver2 的域名解析,代码如下:

    127.0.0.1 eurekaserver1

    127.0.0.1 eurekaserver2

  • 通过spring.profiles.active属性来分别启动 eurekaserver1 eurekaserver2

    java -jar eureka-server-1.0.0.jar --spring.profiles.active=server1

    java -jar eureka-server-1.0.0.jar --spring.profiles.active=server2

    启动之后访问https://localhost:1111,可以看到registered-replicas中已经有eurekaserver2 的注册中心,如下图所示:

  • 在设置了多节点的服务注册中心之后,服务提供方还需要做一些简单的配置才能将服务注册到EurekaServer集群中,在前面的hello-service为例,修改application.properties配置文件,如下所示:

    spring.application.name=hello-service

    eureka.client.service-url.defaultZone=https://eurekaserver1:1111/eureka/,https://eurekaserver2:1112/eureka

    上面的配置主要对eureka.client.service-url.defaultZone属性进行了修改,将注册中心指向了之前我们搭建的服务注册中心集群,启动服务后,可以看到在eurekaserver1 eurekaserver2 都进行了注册。


分享到: