1、常见问题

  • 1、为什么服务下线了,Eureka Server接口返回的信息还会存在?
  • 2、为什么服务上线了,Eureka Client不能及时获取到?
  • 3、为什么偶尔会有如下提示:
    EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RENOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE

2、解决方法

  • 针对第一个问题,Eureka Server并不是强一致的,因此registry中会存留已过期的实例信息,有一下几个原因:

    • 1、应用实例异常挂掉,没能在挂掉之前告知Eureka Server要下线该服务实例信息。这种情况下就需要依赖Eureka Server的EvictionTask去剔除。
    • 2、应用实例下线时有告知Eureka Server下线,但是由于Eureka Server的REST API有response cache,因此需要等待缓存过期才能更新。
    • 3、Eureka Server由于开启并引入了SELF PRESERVATION模式,导致registry的信息不会因为过期而被剔除掉,直到退出SELF PRESERVATION模式。
  • 针对第二个问题,可以调整EvictionTask的调度频率,比如下面的配置,将调度间隔默认的60秒,调整为15秒:
    eureka.server.eviction-interval-timer-in-ms=5000
  • 针对response cache的问题,可以根据情况考虑关闭readOnlyCacheMap:

    eureka.server.use-read-only-response-cache=false
  • 或者调整readWriteCacheMap的过期时间:

    eureka.server.response-cache-auto-expiration-in-seconds=60
  • 针对SELF PRESERVATION的问题,在测试环境可以将enable-self-preservation设置为false:

    eureka.server.enable-self-preservation=false
  • 关闭的话,则会提示:

    RENEWALS ARE LESSER THAN THE THRESHOLD. THE SELF PRESERVATION MODE IS TURNED OFF. THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.

    或者:

    THE SELF PRESERVATION MODE IR TURED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.
  • 针对新服务上线,Eureka Client获取不及时的问题,在测试环境,可以适当提高Client端拉取Server注册信息的频率,例如下面将默认的30秒改为15秒:
    eureka.client.registry-fetch-interval-seconds=5
  • 针对SELF PRESERVATION问题,在实际生产过程中,经常会有网络抖动等问题,造成服务实例与Eureka Server的心跳未能如期保持,但是服务实例本身是健康的,这个时候如果按照租约机制剔除的话,会造成误判,如果大范围误判的话,可能会导致整个服务列表中的大部分注册信息被剔除,从而导致没有可用服务。Eureka为了解决这个问题引入可SELF PRESERVATION机制,当最近一分钟接受到的续约的次数小于等于指定阀值的话,则关闭续约失效剔除,禁止定时任务剔除失效的实例,从而保护注册信息,对于开发测试环境,开启这个机制有时候反而会影响系统的持续集成,因此可以通过如下参数关闭该机制:
    eureka.server.enable-self-preservation=false

    在生产环境中,可以把renewalPercentThreshold及leaseRenewalIntervalInSeconds参数调小一点,进而提高SELF PRESERVATION机制的门槛,比如:

    eureka.instance.lease-renewal-interval-in-seconds=10
    eureka.server.renewal-percent-threshold=0.49

        

Eureka参数调优的更多相关文章

  1. Eureka 参数调优

    常见问题 为什么服务下线了,Eureka Server 接口返回的信息还会存在. 为什么服务上线了,Eureka Client 不能及时获取到. 为什么有时候会出现如下提示: EMERGENCY! E ...

  2. Spark Shuffle原理、Shuffle操作问题解决和参数调优

    摘要: 1 shuffle原理 1.1 mapreduce的shuffle原理 1.1.1 map task端操作 1.1.2 reduce task端操作 1.2 spark现在的SortShuff ...

  3. 搭建 windows(7)下Xgboost(0.4)环境 (python,java)以及使用介绍及参数调优

    摘要: 1.所需工具 2.详细过程 3.验证 4.使用指南 5.参数调优 内容: 1.所需工具 我用到了git(内含git bash),Visual Studio 2012(10及以上就可以),xgb ...

  4. 【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优

    libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰. 所需工具:libsvm.gnuplot 本机环境:Windo ...

  5. spark参数调优

    摘要 1.num-executors 2.executor-memory 3.executor-cores 4.driver-memory 5.spark.default.parallelism 6. ...

  6. Linux内核 TCP/IP、Socket参数调优

    Linux内核 TCP/IP.Socket参数调优 2014-06-06  Harrison....   阅 9611  转 165 转藏到我的图书馆   微信分享:   Doc1: /proc/sy ...

  7. JVM参数调优

    JVM参数调优 JVM参数调优是一个很头痛的问题,可能和应用有关系,下面是本人一些调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,d ...

  8. 【转】XGBoost参数调优完全指南(附Python代码)

    xgboost入门非常经典的材料,虽然读起来比较吃力,但是会有很大的帮助: 英文原文链接:https://www.analyticsvidhya.com/blog/2016/03/complete-g ...

  9. XGBoost参数调优完全指南(附Python代码)

    XGBoost参数调优完全指南(附Python代码):http://www.2cto.com/kf/201607/528771.html https://www.zhihu.com/question/ ...

随机推荐

  1. python 3.7.4下载与安装的问题

    发病时间:2019 年 8 月12 日 周一 1.操作系统环境: Win10 64位 2.pyhon版本3.7.4 python官网地址:www.python.org 本机下载的文件名为:python ...

  2. 12_goto语句的使用

    1.goto是一个关键字,其作用是运行到goto语句进行跳转,立即执行goto后面所对应标签的语句2.结构:goto 标签名(任意起)3.goto语句尽量不要跨函数使用,否则会使代码看起来非常乱,可读 ...

  3. Nacos整合Spring Cloud Gateway组件

    一.什么是Spring Cloud Gateway Spring Cloud Gateway是Spring Cloud官方推出的网关框架,网关作为流量入口有着非常大的作用,常见的功能有路由转发.权限校 ...

  4. HDU 4479 Shortest path 带限制最短路

    题意:给定一个图,求从1到N的递增边权的最短路. 解法:类似于bellman-ford思想,将所有的边先按照权值排一个序,然后依次将边加入进去更新,每条边只更新一次,为了保证得到的路径是边权递增的,每 ...

  5. JDBC处理mysql大数据

    大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时是需要用程序把 ...

  6. 关于git远程被覆盖的问题

    有同事A和B,git远程版本为A0,两个人的本地项目已经跟远程同步.同事A先向git提交了3次,A1.A2.A3.git远程版本为A0.A1.A2.A3.同事B也向git提交了1次B1,但是同事B提交 ...

  7. SpringSecurity自定义UsernamePasswordAuthenticationFilter

    UsernamePasswordAuthenticationFilter介绍 UsernamePasswordAuthenticationFilter是AbstractAuthenticationPr ...

  8. 剖析nsq消息队列(二) 去中心化代码源码解析

    在上一篇帖子剖析nsq消息队列(一) 简介及去中心化实现原理中,我介绍了nsq的两种使用方式,一种是直接连接,还有一种是通过nslookup来实现去中心化的方式使用,并大概说了一下实现原理,没有什么难 ...

  9. Spring Boot 利用 nginx 实现生产环境的伪热更新

    当我们在服务器部署Java程序,特别是使用了 Spring Boot 生成单一 Jar 文件部署的时候,单一文件为我们开发单来的极大的便利性,保障程序的完整性.但同时对我们修改程序中的任何一处都带来重 ...

  10. Hive函数大全-完整版

    现在虽然有很多SQL ON Hadoop的解决方案,像Spark SQL.Impala.Presto等等,但就目前来看,在基于Hadoop的大数据分析平台.数据仓库中,Hive仍然是不可替代的角色.尽 ...