结论:服务发现解决动态环境下服务实例定位问题:实例启动时向注册中心注册自己的地址与元数据并定期续约,调用方从注册中心拉取(或订阅推送)健康实例列表,配合客户端负载均衡完成调用。

展开:两种模式:客户端发现(Ribbon+Eureka 式,调用方内置负载均衡,少一跳但逻辑侵入语言栈)和服务端发现(经 LB/网关中转,客户端简单但多一跳)。注册中心选型是经典考点:Eureka 保 AP——网络分区时宁可返回过期数据也不拒绝服务,自我保护模式防止大规模误剔除;Nacos 支持 AP/CP 切换;Consul 走 Raft 保 CP 强一致;Zookeeper 也是 CP。健康检查分心住户上报(客户端心跳)和主动探测(服务端 TTL/HTTP 检查)。云原生趋势:Kubernetes 用 Service+CoreDNS+Endpoints 天然提供服务发现,注册中心的寻址职能被弱化,但元数据路由、权重、环境隔离等治理需求仍需要注册中心或 Service Mesh 补足。易错点:1)实例下线要先从注册中心摘除再优雅停机,否则流量打到已死实例;2)心跳间隔与剔除超时太短会误判,太长则故障实例存续期长;3)客户端缓存列表要有容灾,注册中心全挂时仍能用旧列表维持调用。