Nacos服务注册与发现的原理
Nacos服务注册与发现的原理
一、Nacos介绍
Nacos是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
二、Nacos服务注册与发现
1.服务注册
服务实例启动:当服务实例启动时,它会通过Nacos客户端与Nacos服务端建立连接。
发送注册请求:服务实例通过HTTP或DNS协议向Nacos服务端发送注册请求,请求中包含服务名、IP、端口、健康检查URL等信息。
服务端处理:Nacos服务端接收到注册请求后,将服务实例信息存储到内存中,同时持久化到数据库中。
健康检查:Nacos服务端会定期对已注册的服务实例进行健康检查,确保服务实例可用。
2.服务发现
服务消费者:当服务消费者需要调用服务提供者时,它会向Nacos服务端发送服务发现请求。
服务端响应:Nacos服务端接收到服务发现请求后,会返回所有可用的服务实例列表。
负载均衡:服务消费者根据某种负载均衡策略(如随机、轮询等)从服务实例列表中选择一个服务实例进行调用。
下面是它的原理图:
图中的流程是大家所熟悉的,不同的是在Nacos 中,服务注册时在服务端本地会通过轮询注册中心集群节点地址进行服务得注册,在注册中心上,即Nacos Server上采用了Map保存实例信息,当然配置了持久化的服务会被保存到数据库中,在服务的调用方,为了保证本地服务实例列表的动态感知,Nacos与其他注册中心不同的是,采用了 Pull/Push同时运作的方式。