服务治理
2026年3月9日大约 3 分钟
服务治理
服务治理(Service Governance)是指在分布式系统中,通过一系列的策略、工具和技术来管理和控制服务的生命周期、性能、安全性和可靠性。服务治理的目标是确保服务能够高效地运行,并且能够满足用户的需求,同时也能够应对各种挑战,如服务的扩展、故障恢复、安全威胁等。

图:服务治理-各角色之间的关系
注册中心使用流程:
- 服务启动时就会注册自己的服务信息(服务名、IP、端口)到注册中心
- 调用者可以从注册中心订阅想要的服务,获取服务对应的实例列表(1个服务可能多实例部署)
- 调用者自己对实例列表负载均衡,挑选一个实例
- 调用者向该实例发起远程调用
服务治理的三角色:
- 服务提供者:提供接口供其它微服务访问
- 服务消费者:调用其它微服务提供的接口
- 注册中心:记录并监控微服务各实例状态,推送服务变更信息。
当服务提供者的实例宕机或者启动新实例时,调用者如何得知呢?
- 服务提供者会定期向注册中心发送请求,报告自己的状态(心跳请求)
- 当注册中心长时间收不到提供者的心跳时,会认为该实例宕机,将其从服务的实例列表中剔除
- 当服务有新实例启动时,会发送注册服务请求,其信息会被记录在注册中心的服务实例列表(服务注册)
- 当注册中心服务列表变更时,会主动通知微服务,更新本地服务列表(服务订阅)
nacos
nacos是阿里巴巴开源的一个服务发现和配置管理平台,提供了服务注册、服务发现、动态配置管理等功能。
服务注册
服务提供者在启动时,向nacos注册自己的服务信息(服务名、IP、端口等),nacos会将这些信息保存在注册中心中。以便服务消费者能够通过nacos获取到服务提供者的实例列表。
- 添加nacos依赖:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>最新版本号</version> </dependency> - 配置nacos注册中心地址:
spring: application: name: your-service-name # 服务名,在会作为nacos中的服务名称 cloud: nacos: server-addr: localhost:8848 # nacos服务器地址
服务发现
- 添加nacos依赖:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>最新版本号</version> </dependency> - 配置nacos注册中心地址:
spring: application: name: your-service-name # 服务名,在会作为nacos中的服务名称 cloud: nacos: server-addr: localhost:8848 # nacos服务器地址提示
这里 获取服务实例列表 了解即可,可跳转至OpenFeign
- 获取服务实例列表:
@Resource private DiscoveryClient discoveryClient; public void getServiceInstances() { // 根据服务名称,获取服务实例列表 List<ServiceInstance> instances = discoveryClient.getInstances("your-service-name"); // 负载均衡,可选 ServiceInstance instance = instances.get(RandomUtils.nextInt(0, instances.size())); // 获取实例的IP和端口 Uri uri = instance.getUri(); // 发起调用 ... }