Eureka服务下线后快速感知配置

  如今因为eureka服务愈来愈多,发现服务提供者在停掉好久以后,服务调用者很长时间并无感知到变化,依旧还在持续调用下线的服务,致使长时间后才能返回错误,所以须要调整eureka服务和客户端的配置,以便实现服务下线后快速感知。缓存

  须要调整服务注册中心、服务提供者和服务消费者三个配置。网络

服务注册中心EurekaServer

先上要更改的配置:并发

eureka:
  server:  #配置属性,但因为 Eureka 自我保护模式以及心跳周期长的缘由,常常会遇到 Eureka Server 不剔除已关停的节点的问题
    enable-self-preservation: false # 设为false,关闭自我保护
    eviction-interval-timer-in-ms: 5000 # 清理间隔(单位毫秒,默认是60*1000)启用主动失效,而且每次主动失效检测间隔为3s

1.先要关闭自我保护 enable-self-preservation: false测试

2.eviction-interval-timer-in-ms 启用主动失效,而且每次主动失效检测间隔为5sfetch

  Eureka Server会定时(间隔值是eureka.server.eviction-interval-timer-in-ms,默认值为0,默认状况不删除实例)进行检查,若是发现实例在在必定时间(此值由客户端设置的eureka.instance.lease-expiration-duration-in-seconds定义,默认值为90s)内没有收到心跳,则会注销此实例。spa

  有些文档指出还须要设置下面的两个参数(上下两种写法),但都测试后暂时没发现什么强关联性,这里暂时先不设置。3d

Eureka服务提供方、Eureka服务调用方修改以下配置:

eureka:
  instance:
    prefer-ip-address: true
 lease-renewal-interval-in-seconds: 4
    lease-expiration-duration-in-seconds: 12
  client:
    serviceUrl:
      defaultZone: http://localhost:1025/eureka
 fetch-registry: true registry-fetch-interval-seconds: 8

  客户端经过eureka.instance.lease-renewal-interval-in-seconds 每隔这个时间会主动心跳一次,默认值为30s,更新本身的状态。Eureka Server收到心跳后,会通知集群里的其它Eureka Server更新此实例的状态。code

  lease-expiration-duration-in-seconds 设置服务过时时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除,通常是lease-renewal-interval-in-seconds的3倍。server

  Eureka Server会定时(间隔值是eureka.server.eviction-interval-timer-in-ms,默认值为0,默认状况不删除实例)进行检查,若是发现实例在在必定时间(此值由eureka.instance.lease-expiration-duration-in-seconds定义,默认值为90s)内没有收到心跳,则会注销此实例。
通过测试设置4s上报一次心跳,12s内无跳就让注册中心剔除服务比较合理,上报时间若为2s,1000个服务会形成对注册中心请求的压力,且2s有可能网络抖动,整个时长6s无响应就判为下线会形成并发压力。blog

  消费端为了能快速响应服务请求会从Eureka Server拉取服务地址清单后缓存到本地(后面会增量获取),fetch-registry要设置为true,按期的更新客户端的服务清单时间 registry-fetch-interval-seconds: 8,这是消费端的设置。

测试总结

  • 只设置服务端Eureka Server的配置是无效的,还须要设置客户端来配合。
  • 调用方访问一个在注册中心不存在服务ID响应是很是快的,但若是访问一个ID还存在,但对应ip服务已经挂了的服务就是404,长时间无响应。
  • 服务提供者进程意外退出或服务彻底卡住(是整个服务没法响应)状况是同样的,都是在指定服务的lease-expiration-duration-in-seconds时间内无意跳就会从注册中心剔除。
  • 注册中心把服务剔除后,调用方还须要时间刷新到本地缓存。
相关文章
相关标签/搜索