Spring Cloud微服务实战教程系列(四)——Spring Cloud Eureka搭建高可用注册中心

        上一篇文章介绍了如何使用Eureka搭建微服务注册与发现中心,这篇博文简单介绍下如何搭建多节点高可用的服务注册中心。

        Eureka Server的设计一开始就考虑了高可用问题,在Eureka的服务治理设计中,所有服务节点既是服务提供方也是服务消费方,服务注册中心也不例外。上节的单节点配置中,我们设置过以下参数,让注册中心不注册自己:

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

         Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果。下面我们来尝试搭建高可用服务注册中心的集群。在上一节的程序上进行扩展,搭建双节点的服务注册中心集群。

        (一)创建application-peer1.properties配置文件,作为peer1服务中心的配置,并将serviceUrl指向peer2:

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

         (二)创建application-peer2.properties配置文件,作为peer2服务中心的配置,并将serviceUrl指向peer1:

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

        (三)在本地hosts文件中添加配置,让上面的域名能够被访问到:

127.0.0.1	peer1
127.0.0.1	peer2

        (四)删除或者注释掉单机版的以下配置,防止节点不注册自己:

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
        (五)通过spring.profiles.active属性分别启动peer1和peer2,或者在IDE里加上启动参数启动应用:
java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer1
java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer2

        此时访问注册中心peer1和peer2的面板http://localhost:1111/、http://localhost:1112/可以看到,Instances currently registered with Eureka中已经有两个注册进来的服务了。


           在设置了多节点的注册中心之后,服务提供方还需要做一些简单的配置才能将服务注册到Eureka Server集群之中,以hello-service为例,修改application.properties配置文件中的eureka.client.serviceUrl.defaultZone配置,将注册中心指向我们前面搭建的peer1和peer2:

spring.application.name=hello-service
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/

        现在我们启动hello-service,可以观察到hello-service被同时注册到了peer1和peer2当中。此时如果peer1挂掉,我们在peer2上依然能够访问到hello-service,从而实现了注册中心的高可用。

        

猜你喜欢

转载自blog.csdn.net/u010227646/article/details/80018624