微服务 – Spring Cloud – Eureka自我保护机制

自我保护是什么?

自我保护是一种针对网络异常波动的安全保护措施,自我保护能使Eureka集群更加的健壮、稳定的运行。

因为 Eureka 客户端会定时的向 Eureka 服务端 发送心跳检测包, 默认30秒发送一次。发送目的是为了通知 Eureka 服务端 你好,老六。我还在,别删我!。如果超过90秒(默认90秒),服务端没有收到 Eureka 客户端发送的心跳包,就会认为 My son, you are dead! 我要把你踢出去! 但是如果短时间内丢失了Eureka 客户端发送的心跳包, Eureka 服务端便会触发自我保护机制。而且 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.

为什么要有自我保护机制?

其实说白了,如果因为网络波动的原因导致的,丢失大量心跳包,直接剔除服务,并不妥当。因为服务可能并没有挂掉。这个时候 Eureka 启动自我保护机制,就会把当前的服务注册信息保护起来。生产环境中非常有用。在生产环境中轻易的剔除某个服务,会导致服务性能下降,甚至是宕机,丢失数据。

Guess you like

Origin blog.csdn.net/weixin_43713498/article/details/131318175