Nacos最全详解(图文全面总结)

Nacos最全详解(图文全面总结)

Nacos是SpringCloudAlibaba的核心组件,也是大厂重点考察内容,下面我就全面来详解Nacos@mikechen

Nacos

Nacos(Dynamic Naming and Configuration Service),是阿里开发的服务注册与发现、配置管理、和服务管理平台。

Nacos最全详解(图文全面总结)

Nacos主要解决以下问题:

1.服务注册与发现

服务注册:允许服务实例向Nacos注册中心注册自身的信息,包括:服务名称、IP地址、端口、健康检查……….等。

服务发现:服务消费者可以通过Nacos获取服务实例的信息,从而调用相应的服务。

2.动态配置管理

支持配置的动态管理,可以在应用运行时动态更新配置,而不需要重启应用。

3.多环境管理

支持不同环境,比如:开发、测试、生产…….的配置管理。

4.服务元数据管理

Nacos的服务及其元数据管理功能,能帮助简化微服务架构中的服务注册、发现、配置管理、和健康检查。

 

Nacos架构

Nacos架构,如下图所示:

Nacos最全详解(图文全面总结)

Nacos架构,主要会包含:服务注册中心、服务提供方、服务消费方…等等实现。

1.服务注册中心

服务注册中心,存储所有已注册服务的实例、及其元数据。

工作流程,大致如下:

1)服务注册

首先,服务提供方,将其实例注册到服务注册中心;

2)服务发现

其次,是服务发现,服务消费方通过查询服务注册中心,找到可用的服务实例。

3)健康检查

服务注册中心,可能会调用服务实例的健康检查API,确保实例能够处理请求。

 

2.服务

服务是指一组功能或操作,这些功能可以被不同的客户端重用。

服务的主要目的是:通过跨进程的网络调用来提供功能、或执行操作。

比如:

1)K8S服务(Kubernetes Service)

在Kubernetes环境中,Nacos可以与Kubernetes的服务发现机制集成,支持自动注册和发现Kubernetes中的服务。

2)RPC服务

比如:支持基于gRPC、或Dubbo的RPC服务调用,这些是常见的高效分布式服务框架。

3)SpringCloud服务(Spring Cloud RESTful Service)

与Spring Cloud集成,支持基于RESTful的服务调用、和管理。

 

3.服务提供

服务提供方:主要就是服务提供方去实现具体的服务逻辑,并将其暴露给其他、应用或服务调用。

 

4.服务消费方

服务消费方是指发起对服务调用的应用方,服务消费者通过服务发现机制找到服务提供方,并调用其提供的功能。

 

5.服务元数据

服务元数据:是指描述服务的附加信息,包括:服务端点、标签、版本号、权重、路由规则、安全策略…….等。

 

6.配置管理

配置管理:是指对系统中所有配置的编辑、存储、分发、变更管理。

比如:

  • 配置编辑:修改、和更新配置文件;
  • 配置存储:持久化存储配置数据,确保数据的可靠性;
  • 配置分发:将配置分发到相关的应用、或服务;
  • 版本管理:管理配置的版本历史,支持版本回滚;
  • 配置变更:记录配置变更历史、和操作。

 

Nacos工作原理

Nacos工作原理,如下图所示:

Nacos最全详解(图文全面总结)

1.服务注册与发现

首先,第一步:服务注册。

服务实例在启动时,通过Nacos Client,向Nacos Server发送注册请求,包括:服务名称、IP地址、端口、元数据……..等。

Nacos Server,将服务实例信息存储在服务注册中心,并启动健康检查。

2.服务发现

服务消费者,通过Nacos Client向Nacos Server发送查询请求,获取指定服务的实例列表。

Nacos Server返回符合条件的服务实例列表,支持动态更新。

3.健康检查

Nacos Server,定期调用服务实例的健康检查API,检查服务实例的健康状态。

不健康的服务实例,会被从注册表中剔除,以确保服务的可用性。

4.配置管理

配置文件,通过Nacos Console、或API创建。

并存储在Nacos Server中,配置数据包括:数据ID、分组、标签、配置内容…….等。

5.配置发布与动态刷新

更新配置后,用户通过Nacos Console、或API发布配置,发布后的配置数据会更新在Nacos Server中。

应用程序通过Nacos Client订阅配置变更,当配置发生变化时。

Nacos Server推送更新通知给客户端,客户端自动刷新配置。

6.DNS服务

将服务名称,映射到IP地址列表,实现动态DNS服务。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧