简介
Eureka是Netflix开发的服务发现框架,是一个RESTful风格的服务,是一个用于服务发现和注册的基础组件,是搭建Spring Cloud微服务的前提之一,它屏蔽了Server和client的交互细节,使得开发者将精力放到业务上。
服务注册与发现主要包括两个部分:服务端(Eureka Server)和客户端(Eureka Client)
服务端(Eureka Server): 一个公共服务,为Client提供服务注册和发现的功能,维护注册到自身的Client的相关信息,同时提供接口给Client获取注册表中其他服务的信息,使得动态变化的Client能够进行服务间的相互调用。
客户端(Eureka Client): Client将自己的服务信息通过一定的方式登记到Server上,并在正常范围内维护自己信息一致性,方便其他服务发现自己,同时可以通过Server获取到自己依赖的其他服务信息,完成服务调用,还内置了负载均衡器,用来进行基本的负载均衡。
Eureka Server端配置:
取消eureka server的自我保护功能,如果开启,即使节点失效,也不清除
eureka.server.enable-self-preservation = false
eureka server刷新readCacheMap的时间,注意,client读取的是readCacheMap,这个时间决定了多久会把readWriteCacheMap的缓存更新到readCacheMap上。Eureka Server 返回最新的注册信息的接口缓存刷新时间间隔,默认 30000(毫秒)。有时候会看到 Eureka 页面和 /eureka/apps 接口的服务状态不一致,就是因为 /eureka/apps 接口默认会有 30 秒缓存
默认30s
eureka.server.responseCacheUpdateIntervalMs=2000
失效删除机制:
Eureka Server会定时(间隔值是eureka.server.eviction-interval-timer-in-ms,默认值为0,默认情况不删除实例)进行检查,如果发现实例在在一定时间(此值由客户端设置的eureka.instance.lease-expiration-duration-in-seconds定义,默认值为90s)内没有收到心跳,则会注销此实例**
eureka server清除无效服务节点的时间间隔(每隔2S扫描一次,fa)
eureka.server.eviction-interval-timer-in-ms = 5000
Eureka Client端配置:
Eureka服务端在收到最后一次心跳之后等待的时间上限,单位为秒,超过则剔除(客户端告诉服务端按照此规则等待自己)
eureka.instance.lease-expiration-duration-in-seconds = 10
从Eureka服务器端获取注册信息的间隔时间,单位:秒
eureka.client.registery-fetch-interval-seconds = 5
Eureka客户端向服务端发送心跳的时间间隔,单位为秒(客户端告诉服务端自己会按照该规则)
eureka.instance.lease-renewal-interval-in-seconds = 5
网友评论