3.1 eureka自我保护

Posted shiyun32

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.1 eureka自我保护相关的知识,希望对你有一定的参考价值。

故障现象:

技术分享图片

 

Down:是下线(掉线)的意思.

导致原因:

  一句话:某时刻某一个微服务不可用了,eureka不会立刻清理,依旧会对该微服务的信息进行保存

 

什么是自我保护模式?

默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。

但是当网络分区故障发生时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,

此时本不应该注销这个微服务。Eureka通过“自我保护模式”来解决这个问题——当EurekaServer节点在短时间内丢失过多客户端时(可能

发生了网络分区故障),那么这个节点就会进入自我保护模式。一旦进入该模式,EurekaServer就会保护服务注册表中的信息,不再删除

服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢复后,该Eureka Server节点会自动退出自我保护模式。

在自我保护模式中,Eureka Server会保护服务注册表中的信息,不再注销任何服务实例。当它收到的心跳数重新恢复到阈值以上时,

该Eureka Server节点就会自动退出自我保护模式。它的设计哲学就是宁可保留错误的服务注册信息,也不盲目注销任何可能健康的服务实例。

一句话讲解:好死不如赖活着

综上,自我保护模式是一种应对网络异常的安全保护措施。它的架构哲学是宁可同时保留所有微服务(健康的微服务和不健康的

微服务都会保留),也不盲目注销任何健康的微服务。使用自我保护模式,可以让Eureka集群更加的健壮、稳定。


在Spring Cloud中,可以使用eureka.server.enable-self-preservation = false 禁用自我保护模式。一般不要禁用自我保护机制.






以上是关于3.1 eureka自我保护的主要内容,如果未能解决你的问题,请参考以下文章

Eureka源码浅读---自我保护机制

Eureka系列Eureka自我保护机制

十、(Eureka篇)服务发现和自我保护机制

F版本SpringCloud 5—Eureka集群和自我保护机制

Spring Cloud系列教程第九篇-Eureka自我保护机制

Eureka的自我保护机制