服务发现(Discovery)
当调用方(如 order-service 需要调用 user-service)发起请求前,会先向注册中心查询目标服务的可用节点列表:
调用方通过服务名(如 “user-service”)发起查询请求;
注册中心返回符合条件的健康节点列表(过滤掉故障节点);
调用方将节点列表缓存到本地,避免每次调用都查询注册中心,减少网络开销。
- 健康检查(Health Check)
为确保返回给调用方的节点都是可用的,注册中心会定期对已注册的服务节点进行健康探测,常见探测方式包括:
心跳检测:服务节点定期向注册中心发送 “心跳包”(如每 30 秒),若超过指定时间(如 90 秒)未收到心跳,注册中心标记该节点为 “不健康” 并从可用列表中移除;
主动探测:注册中心主动向服务节点发送请求(如访问 /health 接口),根据返回状态码(200 为健康,5xx 为故障)判断节点状态;
被动通知:服务节点发生故障时,主动向注册中心发送 “下线通知”,注册中心立即更新节点状态。