
在 微服务架构 中,服务数量往往成百上千,服务实例还会因为弹性伸缩、故障恢复、滚动升级等频繁上下线。服务发现(Service Discovery) 就是解决“客户端如何知道服务在哪里”的问题。
一、服务发现的作用
屏蔽服务位置的动态变化服务实例的 IP/端口不是固定的,手工配置既不现实也容易出错。服务发现让调用方不必关心服务的具体地址。
实现负载均衡服务发现可以返回一组可用服务实例,调用方通过负载均衡策略(如轮询、权重、最少连接数)选择目标。
增强系统的弹性与可扩展性新服务实例注册后即可被发现并使用;失效实例被摘除,不会影响调用。
支持故障容错调用方能根据发现机制实时感知健康的服务实例,避免请求打到不可用节点。
二、服务发现的设计思想
注册与查询分离
服务注册(Service Registration):服务启动后向注册中心报告自己的信息(如 IP、端口、元数据),并定期心跳维持。
服务发现(Service Discovery):调用方通过注册中心获取目标服务的实例列表。
两种发现模式
客户端发现(Client-side Discovery)调用方自己从 ...














