加速 Netflix-Eureka 注销不适用于 Spring 引导

Speeding up Netflix-Eureka Unregistration not working for Spring Boot

我有一个尤里卡服务器 运行 application.yml 看起来像

server:
  port: 8761 

eureka:
  client:
    registerWithEureka: false
    fetch-registry: false
  server:
    wait-time-in-ms-when-sync-empty:  5 
    enable-self-preservation: false

在客户端,我有

eureka:
  instance:
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 1
    lease-expiration-duration-in-seconds: 1

  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:8761/eureka

我特地放了

lease-renewal-interval-in-seconds: 1
lease-expiration-duration-in-seconds: 1

而不是 lease-expiration-duration-in-seconds 的默认值,即 90。

但是,Eureka 需要接近 30 秒才能注销客户端,这与默认情况下在没有 wait-time-in-ms-when-sync-empty 的情况下注册客户端所需的时间类似: 5 显式添加到 eureka 服务器的 application.yml

有没有办法加快注销过程?看来我的加速尝试没有奏效

有一个属性: evictionIntervalTimerInMs 我们需要在服务器端配置。

server:
    enableSelfPreservation: false
    evictionIntervalTimerInMs: 1000

这是 运行 从 eureka 注册表中删除服务条目的预定作业。 默认情况下是 (60 * 1000) 毫秒。将它减少到相当多的毫秒数,它将按预期工作。

一旦您的服务租约被取消,它将在 eureka 的注册表中等待,直到下一个驱逐作业 运行s。因此,根据驱逐作业的最后 运行 时间,注册表中的服务条目可能会驻留 10、30、40.. 秒。

这个属性是调试库后发现的。有了这个 属性 我就能得到预期的行为。希望这对你有用。