Springcould(二)之搭建服务注册中心Eureka集群

为了实现服务注册中心Eureka的高可用,我们通常会把Eureka搭建成一个集群,这样,当一台Eureka宕机后会使得注册进它里面的服务提供者都能正常被访问到,从而实现高可用。

上一篇文章中讲述了搭建一个单机版的Eureka,继续上一篇中的工程,新建两个module,eureka-server-7002和eureka-server-7003,修改7001,7002和7003的application.yml配置文件如下:

server:
  port: 7001 #eureka服务端的端口号

eureka:
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称

  client:
    register-with-eureka: false  #不用把自己注册进注册中心
    fetch-registry: false
    service-url:
      #单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
       defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ #集群绑定,三台eureka互相知道对方
server:
  port: 7002 #eureka服务端的端口号

eureka:
  instance:
    hostname: eureka7002.com #eureka服务端的实例名称

  client:
    register-with-eureka: false  #不用把自己注册进注册中心
    fetch-registry: false
    service-url:
      #单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
       defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/
server:
  port: 7003 #eureka服务端的端口号

eureka:
  instance:
    hostname: eureka7003.com #eureka服务端的实例名称

  client:
    register-with-eureka: false  #不用把自己注册进注册中心
    fetch-registry: false
    service-url:
      #单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
       defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

 这里分别都修改了eureka服务端的实例名称,这里是为了区分开三个eureka服务,我们使用eurekaxxxx.com来访问,(在windows上面)所以需要修改host文件从而修改域名映射,这里的三个eurekaxxxx.com都映射127.0.0.1,然后在defaultZone中,因为需要搭建集群嘛,所以在7001中就要写上7002和7003的服务url,以此类推,这样三个eureka服务就能互相感应到对象并且能绑定起来形成一个集群了。我们访问7001

可以看到7001下面有7002和7003。对于Eureka集群来说,每一个节点都是平等的,不存在高低优先级之分,当我们访问到的Eureka连接超时的时候,会自动地连接到另一台Eureka服务器,从而这样无缝地实现了高可用,这与Zookeeper不同,当zookeeper集群中的master宕机的时候,剩下的salver会通过选举的机制去选出master,而这个过程耗时大概是30s-120s,咋这期间整个zookeeper集群是不可用的,所以说zookeeper达不到高可用性,这就是两者的区别。

猜你喜欢

转载自blog.csdn.net/weixin_37689658/article/details/88557676