SpringCloud Eureka心跳vs健康检查

时间:2020-01-29 21:24:40

标签: netflix-eureka

我已经在Spring云文档中阅读了有关用于微服务的Spring Eureka的信息。另外,阅读Eureka Server会收到已向Eureks Server注册的客户端的心跳。但我不明白,为什么会有这个eureka.client.healthcheck.enabled=true。客户端每隔一定的时间间隔发送一次心跳,健康检查有什么用?是否用于服务的自定义健康检查?

1 个答案:

答案 0 :(得分:1)

从春季docs起:

默认情况下,Eureka使用客户端心跳来确定客户端是否启动。除非另有说明,否则根据 Spring Boot Actuator ,Discovery Client不会传播应用程序的当前运行状况检查状态。因此,在成功注册后,Eureka始终宣布该应用程序处于“启动”状态。

通过启用Eureka运行状况检查可以更改此行为,这将导致应用程序状态传播到Eureka。结果,其他所有应用程序都不会将流量发送到“ UP”以外的其他状态。

此属性用于调整Eureka客户端向服务器报告其有效状态的方式。

启用此属性后,客户端应用程序会将运行状况(与Actuator框架的/health端点报告的运行状况相同)发送到Eureka服务器,服务器将使用此状态来确定服务器是否应发布主机名/ IP将此特定应用程序转换为其他应用程序。

您可以customize what information is collected/health端点上报告状态。

示例:您可以将health端点配置为在数据库连接失败率超过特定阈值时返回“ DOWN”。在这种情况下,即使该应用程序实际上并未崩溃,它也不是一件好事。除了404之外,所有端点都仍返回一些HTTP代码,但由于数据库连接失败,整个应用程序并不好。

将此数据库运行状况检查添加到默认的运行状况聚合逻辑后,客户端将向Eureka服务器报告“关闭”,并且服务器不会将此特定应用程序/实例发布给其他应用程序/实例。