神秘的Eureka自我保护

标签: eureka 自我 | 发表时间:2020-01-31 01:00 | 作者:翔宇
出处:http://weekly.dockone.io

根据CAP定理,Eureka是一个AP系统,这就导致了在网络分区期间多个注册表中的信息不一致。自我保护功能则是为了尽可能降低这种不一致。

自我保护的定义

自我保护(self preservation)是Eureka的一项功能,Eureka注册表在未收到实例的心跳情况超过一定阈值时停止驱逐过期的实例。

从一个健康的系统开始

把下面看成一个健康的系统。

假设所有的微服务都处于健康的状态并成功注册到Eureka注册表中。

多个注册表间会同步注册表记录,所有的微服务实例都处于UP状态。假设实例2从注册中心发现里实例4,并调用实例4上的服务。

突发网络分区

假设出现了网络分区,系统变成下面的状态。

由于网络分区,实例4和5丢失了注册中心的连接,但是实例2仍然可以连接到实例4。Eureka服务端因为没有收到实例4和5的心跳(超过一定时间后),将他们驱逐。然后Eureka服务端意识到突然丢失了超过15%(2/5)的心跳,因此其进入自我保护模式。

从此时开始,Eureka服务端不在驱逐任何实例,即使实例真正的下线了。

实例3下线,但其始终存在注册表中。但此时注册表还会接受新实例的注册。

自我保护的基本原理

自我保护功能在下面两种情况下是合理的:
  • Eureka服务端因为弱网分区问题没有收到心跳(这并不意味着客户端下线),但是这种问题可能会很快被修复。
  • 即使Eureka服务端和客户端的连接断开,客户端间还可以继续保持连接。(比如上面实例2仍然可以连接到实例4)


配置(默认)

下面的配置会直接或间接影响到自我保护的行为。
eureka.instance.lease-renewal-interval-in-seconds = 30  

客户端发送心跳的频率。服务端会以此在计算期望收到心跳数,默认30秒。
eureka.instance.lease-expiration-duration-in-seconds = 90  

多长时间未收到心跳后,实例才可以被驱逐,默认90秒。
eureka.server.eviction-interval-timer-in-ms = 60 * 1000  

Eureka服务端驱逐操作的执行频率,默认60秒。
eureka.server.renewal-percent-threshold = 0.85  

期望心跳数达到该阈值后,就会进入自我保护模式,默认0.85。
eureka.server.renewal-threshold-update-interval-ms = 15 * 60 * 1000  

期望心跳数的计算间隔,默认15分钟。
eureka.server.enable-self-preservation = true  

是否允许Eureka服务端进入自我保护模式,默认开启。

理解配置

Eureka服务端在“上一分钟实际收到的心跳数"小于“每分钟期望的心跳数"时就会进入自我保护模式。

期望的每分钟心跳数

假设renewal-percent-threshold设置为0.85。

计算方式:
  • 单个实例每分钟期望的心跳数是:21
  • N个实例的每分钟期望的心跳数:2 * N
  • 期望的上一分钟最小心跳数:2 * N * 0.85


实际的每分钟心跳数

正如上面所述,两个定时调度器独立地运行计算实际和期望的心跳数。此外还有另一个调度任务EvictionTask进行结果比较,并识别当前系统是否在自我保护状态。

这个调度任务每个eviction-interval-timer-in-ms时间执行一次,并决定是否驱逐实例。

结论

  • 基于使用的经验,大多数情况下自我保护模式都是错误的,它错误地认为一些下线的微服务实例是不良的网络分区
  • 自我保护永远不会过期,除非下线的实例重新上线
  • 如果启用了自我保留,则无法对实例的心跳间隔进行微调,因为自我保护在计算期望心跳数是按照30s间隔来计算的
  • 除非环境中经常出现类似的网络分区故障,否则建议关闭


原文链接: https://atbug.com/translation- ... tion/

相关 [eureka 自我] 推荐:

神秘的Eureka自我保护

- - DockOne.io
根据CAP定理,Eureka是一个AP系统,这就导致了在网络分区期间多个注册表中的信息不一致. 自我保护功能则是为了尽可能降低这种不一致. 自我保护(self preservation)是Eureka的一项功能,Eureka注册表在未收到实例的心跳情况超过一定阈值时停止驱逐过期的实例. 假设所有的微服务都处于健康的状态并成功注册到Eureka注册表中.

自我地生活

- Di An - 草榴社區
尽量不为电视里的俗套情节掉眼泪. 永远不刻意地去等电话、等信息、或者等人. 拥有平和的心态,不嫉妒、不羡慕、不急躁. 提高自身的品味,包括书、衣服、以及食物. 不一定要去尝试,但一定要懂知识. 马云说:朋友是他这辈子最大的财富.

说说我理解的“自我管理”

- 躲在街角的猫 - 乱象,印迹
在很长的时间里,我都认为真正要做一点事情,只能来自日复一日的钻研,如“水滴石穿”那样,心无旁骛地持续做下去,才可能成功. 可是,这样的生活必然又很枯燥乏味,许多人看来甚至不可理喻——那么,那些既能把事情做成做好,生活又充满趣味的人,他们到底是怎样生活的. 除去运气,他们还有怎样神秘的力量. 这些问题我想了很久,也实践、反思了很长时间,后来逐渐得到的一个结论:仅仅日复一日的钻研,苦行僧的做法,其实是不够的,更重要的因素,恐怕是自我管理.

自我奋斗的七大秘诀

- chilly - 译言-每日精品译文推荐
想知道如何改变自己的一生,如何获得非凡的成就,尤其是,如何提升自己的身价吗. 介绍一项伟大的“自我奋斗”计划,助你实现自己的梦想. I bump up against this world frequently when researching and writing about lifelong learning, and I have to admit a bit of a love-hate relationship with it.

30个自我提升技巧

- beta4better - 译言-生活点滴
来源30 Self Improvement Ideas.     你可以利用这些自我提升技巧作为提升自身作为的纲领. 如果你想成为生活中积极向上,这是十分重要的一点.   如果你懒惰又没有强有力的一直,你很可能就要过着平庸的生活了. This will make you unwilling to change your circumstances, although you would know that it would benefit you in many ways..

自尊:关爱自我形象

- leqoqo - 译言-每日精品译文推荐
来源Self-Esteem, Your Response to Self-Image.                      —  乔纳森. 我们心中都有一种特定的自我形象. 这种精神意象建立在对自我能力、外貌、智慧、名望及其他个人品质的评价之上. 对自我形象的情感评价将决定着我们对自尊的关心程度.

微博运营者的自我修养

- 虫虫 - SocialBeta
本文来自@众趣研究院的投稿,非常感谢,众趣团队目前在招志同道合的朋友,有意者请联系@众趣研究院. 试想一下,某手机品牌发布了一条新产品的微博,有粉丝询问售价,而这个庞大的企业在互动方面却有着同样庞大的机制,用官方账号回复任何问题都需要层层提交申请再开会研究才能做出回答,等他们真的回答了,恐怕都一个月过去了,那个本来对新产品抱有兴趣的粉丝早就买了回复更迅速的竞争者的手机.

个人自我催眠经验

- Coral - 译言-每日精品译文推荐
来源My Experience With Self Hypnosis. 我现在在听33天的可视化自我催眠的CD. 在这篇文章里我要描述我的自我催眠经验. As you may know I have reviewed one of Bob Proctor’s programs before(6 Minutes To Success program), and this visualisation CD that I am now using is also produced by him..

自我封赏的权力游戏

- 阿飞 - FT中文网_英国《金融时报》(Financial Times)
两个月前,上海市“纠正行业不正之风办公室”,发文给下属单位,要求对其做“政风”评定. 所谓“政风”,就是行政作风,对下属单位来说,或许是一个监督上级的机会,他们的评价多少会影响到一些人的仕途——且慢,组织者早就看透了被管理者的心思,让各单位把评选的电子密码交出来,自己给自己做评定. 接到通知的单位负责人颇为气恼:这样做有什么可信度呢.

心理暗示与自我暗示

- 云飞风起 - 左岸读书_blog
(节选自《心理暗示与自我暗示之柯尔效应》). 主导人的是心理暗示,而不是意志力. 每当意志力(意愿)与心理暗示发生冲突时,获胜的往往是心理暗示. 当冲突发生,你不但不能达成意愿,结果是,你越想违背心理暗示,就越得不到想要的结果. 下面我将举生活中的实例,向你证明该观点的的正确性. 失眠,这个例子最有力,说服力很强.