开发-关闭Eureka自我保护机制
创始人
2024-03-01 04:06:08
0

昨天生产突然出了问题,调用方反馈我们这边的服务调不通。
查看日志发现,有个应用节点假死了,超过了十分钟。
项目使用的是 springboot 框架,Eureka 做应用管理。
默认情况下,应用服务(Eureka Client)会每隔30秒向 Eureka(Eureka Server) 发送一次心跳检测,超过90秒 Eureka Server 收不到心跳就认为服务挂了,就会将此服务节点从服务清单中删除。

但是,但是,但是,Eureka Server 默认还会开启自我保护机制。

当网络故障发生(延时、卡顿、拥挤)时,微服务与 Eureka Server之间无法正常通信,以上行为就变得非常危险,因为微服务本身其实是健康的,此时不应该注销这个微服务。Eureka通过“自我保护模式”来解决这个问题,当Eureka Server节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。
在自我保护模式中,Eureka Server 会保护服务注册表中的信息,不再注销任何服务实例。
它的设计哲学就是并可保留错误的服务注册信息,也不可能盲目注销任何可能健康的服务实例。

关闭Eureka自我保护机制

Eureka Server 增加配置参数

#关闭自我保护机制,保证不可用服务被及时踢除
eureka.server.enable-self-preservation=false# 清理间隔(单位毫秒,默认是60*1000)
eureka.server.eviction-interval-timer-in-ms=2000


Eureka Client 增加配置参数

#Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)
eureka.instance.lease-renewal-interval-in-seconds=1#Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90秒),超时将剔除服务
eureka.instance.lease-expiration-duration-in-seconds=2

然后分别重启 Eureka Server 和 Eureka Client,使配置生效,等应用再次失效时,就会被 Eureka Server 立刻清理掉了。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...