spring cloud 负载均衡 平滑上下线

  eureka注册中心有缓存,服务重启后,你会发现有一小段时间重新启动的服务变成不可用。需要调整缓存时间间隔:

  之前在注册中心看到服务后,还是不可用,一直以为是生产者滞后问题,其实是消费者没有更新时间。 

eureka:

  server:
    # 默认30s. eureka server刷新readCacheMap的时间,注意,client读取的是readCacheMap,
    # 这个时间决定了多久会把readWriteCacheMap的缓存更新到readCacheMap上
    response-cache-update-interval-ms: 3000
    # 默认60s. 启用主动失效,并且每次主动失效检测间隔为5s.
    eviction-interval-timer-in-ms: 5000
  instance:
    # 默认90s. 服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除.
    # 注意,EurekaServer一定要设置eureka.server.eviction-interval-timer-in-ms否则这个配置无效,这个配置一般为服务刷新时间配置的三倍
    lease-expiration-duration-in-seconds: 15
    # 默认30s. 服务刷新时间配置,每隔这个时间会主动心跳一次,不建议修改
    #lease-renewal-interval-in-seconds: 5
    use-read-only-response-cache: false
eureka:
  client:
    # eureka client刷新本地缓存时间
    registryFetchIntervalSeconds: 5
ribbon:
  # eureka客户端ribbon刷新时间
  ServerListRefreshInterval: 5000


修改配置后,下线前先将服务改为不可用状态,休眠20s,然后删除服务,停止应用,重启服务。

curl -X PUT 'http://huilian:hl123...@192.168.200.124:10011/eureka/apps/wph-external-hk/wph-external-hk-service-125/status?value=OUT_OF_SERVICE'
sleep 20s
kill -9 $PID
curl -X DELETE 'http://huilian:hl123...@192.168.200.124:10011/eureka/apps/wph-external-hk/wph-external-hk-service-125'



原文地址:https://www.cnblogs.com/sddychj/p/15692743.html