搭建Eureka Server集群,对外暴露集群地址,让客户端进行注册。
Eureka Server结点之间如何同步数据?
1、相同的服务名称但有不同的实例id,所以拉取的是服务列表。最终通过负载均衡来获取一个服务,这样可以均衡各个服务器上的服务。
2、服务提供者向注册中心注册服务,并每隔30秒发送一次心跳,就如同人还活着存在的信号一样,如果Eureka在90秒后还未收到服务提供者发来的心跳时,那么它就会认定该服务已经死亡就会注销这个服务。这里注销并不是立即注销,而是会在60秒以后对在这个之间段内“死亡”的服务集中注销,如果立即注销,势必会对Eureka造成极大的负担。这些时间参数都可以人为配置。
3、Eureka还有自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,所以不会再接收心跳,也不会删除服务。
要想Eureka Server在启动的时候可以同步其他集群节点的注册信息,那么必须开启客户端配置。
1、eureka.client.register-with-eureka = true是否作为一个Eureka Client 注册到Eureka Server上去 2、eureka.client.fetch-registry = true 是否需要从Eureka Server上拉取注册信息到本地。
只有开启了上面两个配置,那么集群节点在启动的时候,会初始化Eureka Client端的配置,会从其他Eureka Server拉取注册信息到本地,同时在初始化Eureka Server的时候,会从本地内存里面读取 注册信息,自动注册到本身的服务上。
跨区域的高可用集群。
Eureka Server 集群相互之间通过 Replicate 来同步数据,相互之间不区分主节点和从节点,所有的节点都是平等的。在这种架构中,节点通过彼此互相注册来提高可用性,每个节点需要添加一个或多个有效的 serviceUrl 指向其他节点。
如果某台 Eureka Server