Eureka的自我保护机制

上一篇 << 下一篇 >>>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

推荐阅读:
<<<服务注册、服务发现和服务治理
<<<服务治理的方式和原理
<< << << << << <<<@EnableDiscoveryClient与@EnableEurekaClient区别
<< <<

你可能感兴趣的:(Eureka的自我保护机制)