【转载】SpringCloud-Eurek 心跳阈值说明
在使用eureka过程中,查看监控界面,出现:
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT.
RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
Renews threshold:server期望在每分钟中收到的心跳次数
Renews (last min):上一分钟内收到的心跳次数。
自我保护机制的工作机制是如果在15分钟内超过15%(100%-85%)的客户端节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,
Eureka Server自动进入自我保护机制
Eurake有一个配置参数eureka.server.renewalPercentThreshold,定义了renews 和renews threshold的比值,默认值为0.85。可以修改这个参数
这里涉及三个方面:
1. Eureka server和client之间每隔30秒会进行一次心跳通信,告诉server,client还活着。
2. 默认情况下,如果Eureka Server在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例。
3. 如果在15分钟内超过15%(100%-85%)的客户端节点都没有正常的心跳,则自动进入自我保护机制
自我保护机制时会出现以下几种情况:
1、Eureka Server不再从注册列表中移除因为长时间没收到心跳而应该过期的服务。
2、Eureka Server仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上,保证当前节点依然可用。
3、当网络稳定时,当前Eureka Server新的注册信息会被同步到其它节点中
stackoverflow上看到一个解释的比较清楚的:
https://stackoverflow.com/questions/33921557/understanding-spring-cloud-eureka-server-self-preservation-and-renew-threshold#
每个实例都需要将其租约更新到Eureka Server,频率为每30秒一次,可以在其中定义eureka.instance.leaseRenewalIntervalInSeconds。 续订(最后一分钟):表示在最后一分钟从Eureka实例收到的续订数量 续订阈值:Eureka服务器预期每分钟从Eureka实例收到的续订。 例如,如果registerWithEureka设置为false,eureka.instance.leaseRenewalIntervalInSeconds则设置为30并运行2 Eureka实例。两个Eureka实例每分钟将向Eureka服务器
发送4次更新,Eureka服务器最小阈值为1(用代码编写),因此阈值为5(这个数字将乘以一个因子eureka.server.renewalPercentThreshold,稍后将讨论)。 问题1: SELF PRESERVATION MODE旨在避免网络连接故障。Eureka实例A和B之间的连接很好,但是由于连接问题,B很难在短时间内将租约更新到Eureka服务器,此时Eureka服务器不能简单地启动实例B.如果是,则实例尽管B可用,但无法从Eureka服务器获得注册服务。所以这就是SELF PRESERVATION MODE的目的,最好将其打开。 问题2: 最小阈值1写在代码中。registerWithEureka设置为false,因此没有Eureka实例寄存器,阈值将为1。 在生产环境中,通常我们部署两个Eureka服务器并将registerWithEureka设置为true。所以门槛将是2,Eureka服务器将续租两次/分钟,所以RENEWALS ARE LESSER THAN THRESHOLD不会有问题。 问题3: 你是对的。eureka.instance.leaseRenewalIntervalInSeconds定义每分钟发送到服务器的续订次数,但它将乘以eureka.server.renewalPercentThreshold上面提到的因子,默认值为0.。 问题4: 是的,这是正常的,因为阈值初始值设置为1.因此,如果registerWithEureka设置为false,则续订总是低于阈值。 我有两个建议: 部署两台Eureka服务器并启用registerWithEureka。
如果您只想在demo / dev环境中部署,则可以设置eureka.server.renewalPercentThreshold为0.,因此当您单独启动Eureka服务器时,阈值将为0。
可参考文章:
http://www.cnblogs.com/bjlhx/p/8903006.html
【转载】SpringCloud-Eurek 心跳阈值说明的更多相关文章
- 《springcloud 一》搭建注册中心,服务提供者,服务消费者
注册中心环境搭建 Maven依赖信息 <parent> <groupId>org.springframework.boot</groupId> <artifa ...
- 【SpringCloud技术专题】「Eureka源码分析」从源码层面让你认识Eureka工作流程和运作机制(上)
前言介绍 了解到了SpringCloud,大家都应该知道注册中心,而对于我们从过去到现在,SpringCloud中用的最多的注册中心就是Eureka了,所以深入Eureka的原理和源码,接下来我们要进 ...
- spring-cloud-eureka服务注册与发现
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCloud将它集成在其子项 ...
- SpringCloud-初见
目录 前言 微服务概述 微服务与微服务架构 微服务优缺点 微服务技术栈 为什么选择SpringCloud作为微服务架构 SpringCloud入门 SpringCloud和SpringBoot的关系 ...
- Spring Cloud之Eureka自我保护环境搭建
Eureka详解 服务消费者模式 获取服务 消费者启动的时候,使用服务别名,会发送一个rest请求到服务注册中心获取对应的服务信息,让后会缓存到本地jvm客户端中,同时客户端每隔30秒从服务器上更新一 ...
- Spring Cloud第三篇 | 搭建高可用Eureka注册中心
本文是Spring Cloud专栏的第三篇文章,了解前两篇文章内容有助于更好的理解后面文章: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring ...
- SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(转载)
SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本) 转载请标明出处:http://blog.csdn.net/forezp/article/details ...
- GJM : 【C# 高性能服务器】完成端口、心跳的高性能Socket服务器 [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- [转载+原创]Emgu CV on C# (四) —— Emgu CV on 全局固定阈值二值化
重点介绍了全局二值化原理及数学实现,并利用emgucv方法编程实现. 一.理论概述(转载,如果懂图像处理,可以略过,仅用作科普,或者写文章凑字数) 1.概述 图像二值化是图像处理中的一项基本技术,也 ...
随机推荐
- GYM 101755 K.Video Reviews 【贪心】+【二分】
<题目链接> 题目大意: 一家公司想让n个人给他们的产品评论,所以依次去找这n个人,第i个人会评论当且仅当已经有ai个人评论或他确实对这个产品感兴趣,但是这n个人都不对这个产品感兴趣,问这 ...
- JVM之浮点数(float)表示
1. 浮点数的组成:符号位.指数位.尾数位. 1.1 符号位: 占1位,表示正负数: 1.2 指数位: 占8位: 1.3 尾数位: 占23位. 2. 浮点数的表示: 2.1 取值: sflag * ...
- 秒懂HTTPS
http和https HTTP:超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数 ...
- 如何生成WebAssembly文件?
许多3D游戏都是用C/C++语言写的,如果能将C/C++语言编译成JavaScript代码,它们不就能在浏览器里运行了吗?Emscripten的底层是LLVM编译器,Emscripten可以将c/c+ ...
- 从香港机房引入google/bitbucket路由
首先说这种方法有一个局限性:只适用于非CDN网段的引入,比如Google自己足够大,所以用不到CDN,那在香港解析出来的就是Google在香港自己的AS number,因此不存在CDN干扰的问题.如果 ...
- Java并发编程(九)-- 进程饥饿和公平锁
上一章已经提到“如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致进程饥饿”,本文我们详细的介绍一下“饥饿”和“公平”. Java中导致饥饿的原因 在Java中,下面三个常见的原因会导致线 ...
- 修改Chrome启动参数解决跨域问题
这个做法仅仅是针对自己本机,只是一个权宜方案 --disable-web-security --user-data-dir=本地用户信息目录 之后启动Chrome浏览器即可
- 2017.08.05【NOIP提高组】模拟赛B组
Summary 这次比赛打得非常差,第一题我以为是个难题,于是推了一下就没再去想了,然而考场上一堆人AC.第二题状态设错了,导致结果有后效性.结束后pascal卡常卡了36次.第三题别人n²就过了,我 ...
- mysql的基本查询(等于,不等于,between...and...,)
单个字段多个字段查询 查询员工姓名 *注:在SQL语句中不区分大小写:SQL语句以“:”分号结束 select ename from emp; 注:select询句后面跟的是字段名称,select是关 ...
- 简易RPC框架-SPI
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...