码迷,mamicode.com
首页 > 其他好文 > 详细

Eureka失效剔除和自我保护

时间:2021-04-20 15:18:41      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:server   elf   必须   配置   mamicode   不能   timer   loading   故障   

如下的配置都是在Eureka Server服务端进行:

服务下线

当服务进行正常关闭操作时,它会触发一个服务下线的REST请求给Eureka Server,告诉服务注册中心:“我要下线 了”。服务中心接受到请求之后,将该服务置为下线状态。


失效剔除

有时我们的服务可能由于内存溢出或网络故障等原因使得服务不能正常的工作,而服务注册中心并未收到“服务下 线”的请求。相对于服务提供者的“服务续约”操作,服务注册中心在启动时会创建一个定时任务,默认每隔一段时间 (默认为60秒)将当前清单中超时(默认为90秒)没有续约的服务剔除,这个操作被称为失效剔除。

可以通过 eureka.server.eviction-interval-timer-in-ms 参数对其进行修改,单位是毫秒。


自我保护

我们关停一个服务,很可能会在Eureka面板看到一条警告:
技术图片

这是触发了Eureka的自我保护机制。当服务未按时进行心跳续约时,Eureka会统计服务实例最近15分钟心跳续约的 比例是否低于了85%。在生产环境下,因为网络延迟等原因,心跳失败实例的比例很有可能超标,但是此时就把服务 剔除列表并不妥当,因为服务可能没有宕机。Eureka在这段时间内不会剔除任何服务实例,直到网络恢复正常。生 产环境下这很有效,保证了大多数服务依然可用,不过也有可能获取到失败的服务实例,因此服务调用者必须做好服 务的失败容错。

可以在服务注册中心的application.yml文件中添加下面的配置来关停自我保护:

enable-self-preservation: false # 关闭自我保护模式(缺省为打开)

技术图片

Eureka失效剔除和自我保护

标签:server   elf   必须   配置   mamicode   不能   timer   loading   故障   

原文地址:https://www.cnblogs.com/lyd447113735/p/14673942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!