【spring系列】Eureka自我保护机制

Eureka自我保护机制

背景

​ 服务注册到Eureka Server之后,会维护一个心跳连接,告诉Eureka Server自己还活着。在服务由于内存溢出,网络故障等情况,使服务部能正常工作的时候,Eureka Server 会定时剔除这些服务。为了剔除这些服务,Eureka Server默认(60秒)每隔一段时间会把清单中超时(默认90秒)的服务剔除。

​ 可是有的时候,服务本身是可以访问,但是服务和Eureka Server之间无法通信的时候,是不应该剔除服务的,这次就采用了自我保护机制。

自我保护机制

​ 在Eureka Server的运行期间,会统计心跳失败的比例在15分钟之内是否低于85%,如果出现低于的情况,Eureka Server 会吧当前的实例注册信息保护起来,让这些实例不会过期,尽可能的保护这些注册信息。

​ 但是。在这段时间内,如果真有服务无法调用时,就会有问题,所以客户端必须要有容错机制。

自我保护机制基本配置

#服务端配置
#关闭自我保护机制
eureka.server.enable-self-preservation=false
#5秒中循环检查是否有服务死了,然后进行剔除
eureka.server.evictionIntervalTimerInMs=5000

客户端修改默认心跳时间

#客户端配置:
#默认30秒 向服务端发送一次心跳,证明自己依然”存活“。
eureka.instance.lease-renewal-interval-in-seconds=1
#默认90秒 定义服务时效时间 告诉服务端,如果我在时间内没有给你发心跳,就代表我“死”了,将我踢出掉。
eureka.instance.lease-expiration-duration-in-seconds=2

猜你喜欢

转载自blog.csdn.net/qq_30285985/article/details/101084523