eureka集群

1、eureka集群的目的

    eureka作为注册中心,单点存在风险,如果挂了,就会找不到服务了。

2、euerka server

    我们以三个节点为例,application.yml配置如下

---
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/,http://peer2/eureka/

---
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/,http://peer3/eureka/

---
spring:
  profiles: peer3
eureka:
  instance:
    hostname: peer3
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/,http://peer2/eureka/

    此时访问peer1的注册中心:http://peer1/。registered-replicas中已经有peer2、peer3节点的eureka-server了。

    同样地,访问peer2的注册中心:http://peer2/,registered-replicas中已经有peer1、peer3节点,并且这些节点在可用分片(available-replicase)之中。

    我们也可以尝试关闭peer1,刷新http://peer2/,peer1的节点变为了不可用分片(unavailable-replicas)。

    注意:

    两两注册的方式可以实现集群中节点完全对等的效果,实现最高可用性集群,任何一台注册中心故障都不会影响服务的注册与发现。

3、eureka client

server:
  port: 8080
spring:
  application:
    name: eureka-ha-demo
eureka:
  client:
    service-url:
      defaultZone: http://peer1/eureka,http://peer2/eureka,http://peer3/eureka

或者

server:
  port: 8080
spring:
  application:
    name: eureka-ha-demo
eureka:
  client:
    service-url:
      defaultZone: http://peer1/eureka

    client端只连接一个peer1,也会把注册信息同步到peer2、peer3中的。

     因为Eureka Server的同步遵循着一个非常简单的原则:只要有一条边将节点连接,就可以进行信息传播与同步。

猜你喜欢

转载自my.oschina.net/u/182501/blog/1630007