Eureka的自我保护机制
2021-10-24 本文已影响0人
迦叶_金色的人生_荣耀而又辉煌
上一篇 <<<Eureca作为注册中心配置实例
下一篇 >>>Consule作为注册中心配置实例
原理:
a、默认情况下,EurekaClient会定时向EurekaServer端发送心跳,如果EurekaServer在一定时间内没有收到EurekaClient发送的心跳,便会把该实例从注册服务列表中剔除(默认是90秒)。
b、但是在短时间内丢失大量的实例心跳,这时候EurekaServer会开启自我保护机制,Eureka不会踢出该服务。
产生原因
为了防止EurekaClient正常运行,但是与EurekaServer网络不通的情况下,EurekaServer不会对EurekaClient服务进行剔除。
何时使用
本地环境建议禁止自我保护,生产环境建议开启自我保护。
如何配置
服务端
server:
# 测试时关闭自我保护机制,保证不可用服务及时踢出
enable-self-preservation: false
##剔除失效服务间隔
eviction-interval-timer-in-ms: 2000
客户端:
# 心跳检测检测与续约时间
# 测试时将值设置设置小些,保证服务关闭后注册中心能及时踢出服务
instance:
###Eureka客户端向服务端发送心跳的时间间隔,单位为秒(客户端告诉服务端自己会按照该规则)
lease-renewal-interval-in-seconds: 1
####Eureka服务端在收到最后一次心跳之后等待的时间上限,单位为秒,超过则剔除(客户端告诉服务端按照此规则等待自己)
lease-expiration-duration-in-seconds: 2
推荐阅读:
<<<服务注册、服务发现和服务治理
<<<服务治理的方式和原理
<<<Nacos的服务手动注册与发现
<<<Nacos整合到SpringCloud中
<<<Eureca作为注册中心配置实例
<<<Consule作为注册中心配置实例
<<<Zookeeper作为注册中心配置实例
<<<@EnableDiscoveryClient与@EnableEurekaClient区别
<<<Nacos单机环境安装
<<<Nacos集群环境安装