心跳机制
Eureka是通过心跳的方式实现对各个服务实例的健康检测的。在Eureka的服务续约与剔除机制下,客户端的健康状态从注册到注册中心开始都会处于UP状态,除非心跳中止一段时间后,服务注册中心将其剔除。心跳机制以有效检查客户端进程是否正常运作,下面,我们对Eureka心跳机制常用配置进行讲解。
服务启动后,Eureka Client实例将会向Eureka Server发送周期性的心跳,默认是每30秒发送一次,可通过修改Eureka Client实例的eureka.instance.leaseRenwalIntervalInSeconds属性来改变发送周期性心跳的默认时间。如下所示。
1 eureka:
2 instance:
3 leaseRenewalIntervalInSeconds: 5
上述代码中,第3行代码设置了Eureka Client向Eureka Server发送周期性的心跳的默认时间为5秒。
Eureka Server如果在一定期限内没有接收到Eureka Client实例的心跳,那么会将该实例从注册中心剔除掉,其他客户端将无法访问这个实例。这个期限默认值为90秒,可通过eureka.instance.leaseExpriationDurationInSeconds属性来改变这个值。如下所示。
1 eureka:
2 instance:
3 leaseRenewalIntervalInSeconds: 5
4 leaseExpirationDurationInSeconds: 10
上述代码中,第4行代码设置了Eureka Server每隔10秒刷新服务列表,将无效服务剔除。