代码之家  ›  专栏  ›  技术社区  ›  katiex7

加速Netflix Eureka注销对Spring Boot不起作用

  •  0
  • katiex7  · 技术社区  · 7 年前

    我有一个运行应用程序的eureka服务器。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
    

    而不是以秒为单位的租约到期时间的默认值,即90。

    然而,eureka注销客户端需要大约30秒,这与默认情况下注册客户端所需的时间相似,在ms中,当sync empty:5显式添加到eureka服务器的application.yml中时,不需要等待时间。

    有没有办法加快注销过程?看来我加速的尝试不起作用

    1 回复  |  直到 7 年前
        1
  •  3
  •   Sachin    7 年前

    有一个属性: 逐出时间间隔 我们需要在服务器端配置。

    server:
        enableSelfPreservation: false
        evictionIntervalTimerInMs: 1000
    

    这将运行计划作业,该作业将从eureka注册表中删除服务项。 默认情况下为(60*1000)毫秒。将其减少到一些相当长的毫秒,它将按预期工作。

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

    我在调试库后找到的此属性。有了这个属性,我可以得到预期的行为。希望这对你有用。