推荐 Spring Cloud 视频:
Eureka心跳健康检查机制
运行阶段执行健康检查的目的是为了从Eureka服务器注册表中识别并删除不可访问的微服务,Eureka 服务器并不是向客户端发送心跳请求,而是反过来,Eureka 客户端将心跳发送到Eureka服务器,让服务器了解其状态。
这些心跳机制就需要在微服务嵌入一个客户端,用来发送心跳,但是客户端本身必须确定其健康状态,而且Eureka服务器必须为客户端公开一些REST操作以让其发布心跳。
Eureka服务器向客户端公开下面资源以让其发送心跳:
PUT /eureka/apps/{app id}/{instance id}?status={status}
{instance id}采用 hostname:app id:port,其中app id代表标识唯一的Eureka客户端实例,Eureka服务器会识别一些状态数值:UP; DOWN; STARTING; OUT_OF_SERVICE; UNKNOWN.
客户端发送心跳时的URL如下:
PUT /eureka/apps/ORDER-SERVICE/localhost:order-service:8886?status=UP
Eureka服务器收到心跳