springcloud之eureka配置调优

2020-11-27  本文已影响0人  kencool

简介

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

上一篇 下一篇

猜你喜欢

热点阅读