Nacos服务注册与发现的原理

133 阅读2分钟

1.Nacos是一个动态服务发现、配置管理和服务管理平台

Nacos 是一个易于使用的平台,旨在帮助您发现、配置和管理微服务。它是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。Nacos 致力于解决在微服务架构中的服务发现、配置管理、服务健康检查和服务元数据管理等问题。

基本流程:

  • 服务实例启动将自身注册到Nacos注册中心,随后维持与注册中心的心跳;
  • 心跳维持策略为每5秒向Nacos Server发送一次心跳,并携带实例信息(服务名、实例IP、端口等);
  • Nacos Server也会向Client主动发起健康检查,支持TCP/Http;
  • 15秒内无心跳且健康检查失败则认为实例不健康,如果30秒内健康检查失败则剔除实例;
  • 当服务有新实例启动时,会发送注册服务请求,其信息会被记录在注册中心的服务实例列表
  • 当注册中心服务列表变更时,会主动通知微服务,更新本地服务列表
  • 服务消费者通过注册中心获取实例,并发起调用;
  • 其中服务发现支持两种场景:第一,服务消费者直接向注册中心发送获取某服务实例的请求,注册中心返回所有可用实例,但一般不推荐此种方式;第二、服务消费者向注册中心订阅某服务,并提交一个监听器,当注册中心中服务发生变化时,监听器会收到通知,消费者更新本地服务实例列表,以保证所有的服务均可用。

注册中心与服务及其调用者大致关系图: image.png

而Nacos服务注册信息主要存放在两个地方:内存和持久化存储(如数据库)。