笔记: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=http://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=http://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

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

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

    spring.application.name=hello-service

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

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

posted @ 2017-08-03 22:39  立3807  阅读(1712)  评论(0编辑  收藏  举报