美文网首页
服务发现-Eureka参数说明以及实践

服务发现-Eureka参数说明以及实践

作者: bclz | 来源:发表于2019-03-27 13:57 被阅读0次

1. Eureka服务信息的延时问题

配置属性类 : org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean

  • 服务下线后,Eureka不能及时更新

    由于Eureka设计是基于著名的CAP理论中的AP原则设计,并不能保证强一致性

    针对可能的异常情况,Eureka做了一些补偿处理:

    1. 应用实例异常挂掉,不能正常通知Eureka下线该服务实例信息。Eureka使用了 EvictionTask 的定时任务去剔除已下线的服务:
      该包位于com.netflix.eureka.registry.AbstractInstanceRegistry.EvictionTask
      
      class EvictionTask extends TimerTask
      
      
      对于这种情况可以调整EvictionTask调度的频率(即缩短时间间隔),如下配置项:
      //default 60000
      eureka.server.eviction-interval-timer-in-ms=5000
      
    2. 应用实例有通知Eureka下线,但是由于Eureka Server 的Rest API中有response cache ,
      ResponseCache可以参照com.netflix.eureka.registry.ResponseCacheImpl#getCacheUpdateTask,
      有两种一种是readWriteCacheMap,一种是readOnlyCacheMap。
      因为eureka server对rest api提供了多级缓存,第一层是readOnlyCacheMap,最后是readWriteCacheMap,如果readWriteCacheMap读取不到,就会从registry(AbstractInstanceRegistry)进行读取;
      其中readOnlyCacheMap会定时从readWriteCacheMap更新数据,而readWriteCacheMap有自己的过期时间,过期后自动从loader加载新数据。
      
      对于这种情况可以选择关闭responseCache或者调整readWriteCacheMap的过期时间
      //default true
      eureka.server.use-read-only-response-cache=false
      
      //default 180s
       eureka.server.response-cache-auto-expiration-in-seconds=60
      
      
    3. Eureka由于开启了SELF PRESERVATION模式,导致服务的register信息不会因为过期而被剔除掉,直到退出这个模式。
      // default true
      //test或者dev设置成false,影响开发测试持续集成
      eureka.server.enable-self-preservation=false
      
      //生产环境可以适当调小一些默认值,提高进入自我保护的门槛 
      //例如续约的时间间隔(default 30)  和 租约百分比(default 0.85)    --15分钟内续订小于百分之85开启自我保护
      eureka.instance.lease-renewal-interval-in-seconds=30
      eureka.server.renewal-percent-threshold=0.49
      eureka.server.renewal-threshold-update-interval-ms=15 //default值 15分钟
      
  • 服务上线后,Eureka client不能及时更新

    测试环境可以适当提高Client端拉取服务注册信息的频率

    //default 30
    eureka.client.registry-fetch-interval-seconds=5
    

相关文章

网友评论

      本文标题:服务发现-Eureka参数说明以及实践

      本文链接:https://www.haomeiwen.com/subject/lmkavqtx.html