Eureka的自我保护机制
自我保护机制是Eureka注册中心的重要特性,当Eureka注册中心进入自我保护模式是,在Eureka注册中心进入自我保护模式是,在Eureka Server 首页会出现警告⚠️
关闭自我保护
#测试时关闭自我保护,保证不可用服务及时踢出
eureka.server.enable-self-preservation=false
在没有Eureka自我保护的情况下,如果Eureka Server 在一定时间内没有接受到某个微服务实例的心跳,Eureka Server 将会注销该实例,但当发生网络分区故障是,那么微服务与Eureka Server 之间将无法正常通信,以上行为可能便得非常危险——因为服务本身是正常的,此时不应该注销这个服务,如果没有自我保护机制,那么Eureka Server 将会将此服务注销。
在提供者配置文件中加入:
#每间隔2s,向服务器端发送一次心跳,证明自己依然"存活"
eureka.instance.lease-renewal-interval-in-seconds=2
#告诉服务器端,如果10s内没有心跳,代表故障,服务器端踢出
eureka.instance.lease-expiration-duration-in-seconds=10
如果未配置,则发送心跳的默认值为30秒,租约过期时间默认值为90秒
配置成功,启动项目
当挂掉提供者服务,十秒后观察注册中心,注册信息已经没有了。