我已经在Spring云文档中阅读了有关用于微服务的Spring Eureka。另外,阅读Eureka Server会收到已向Eureks Server注册的客户端的心跳信号。但是我不明白,为什么会有这个eureka.client.healthcheck.enabled=true
。客户端每隔一定的时间间隔发送一次心跳,健康检查有什么用?是否用于服务的自定义健康检查?
从春季docs:
默认情况下,Eureka使用客户端心跳来确定客户端是否启动。除非另有说明,否则根据Spring Boot Actuator,发现客户端不会传播应用程序的当前运行状况检查状态。因此,在成功注册后,Eureka始终宣布该应用程序处于“启动”状态。
通过启用Eureka运行状况检查,此行为可以更改,这会将应用程序状态传播到Eureka。因此,所有其他应用程序都不会将流量发送到处于“ UP”以外的状态的应用程序。
此属性用于调整Eureka客户端如何向服务器报告其[[活动状态。
启用此属性后,客户端应用程序会将运行状况(与Actuator框架的/health
端点报告的运行状况相同)发送到Eureka服务器,服务器将使用此状态来确定服务器是否应发布以下服务器的主机名/ IP:将此特定应用程序转换为其他应用程序。您可以customize what information is collected在/health
端点上报告状态。
示例:您可以将health
端点配置为在数据库连接失败率超过某个阈值时返回“ DOWN”。在这种情况下,即使该应用程序实际上并未崩溃,它也不是一件好事。所有端点仍返回除404之外的一些HTTP代码,但由于数据库连接失败,因此整个应用程序总体上不好。
将此数据库运行状况检查添加到默认的运行状况聚合逻辑中,客户端将向Eureka服务器报告“ DOWN”,并且服务器不会将此特定应用程序/实例发布给其他应用程序/实例。