Nacos是SpringCloud阿里巴巴非常重要的核心组件,也是各大厂商经常考察的。本文对Nacos的架构和原理进行了全面的讲解@mikechen。
本文收录于mikechen的30万+字原文《阿里架构师进阶专题合集》。
Nacos介绍
Nacos 是Dynamic Naming and Configuration Service 的缩写,是一个动态服务注册和发现、配置管理和服务管理平台,可以轻松构建云原生应用程序。
Nacos是SpringCloud阿里巴巴架构中最重要的组件。
Nacos作用功能
Nacos主要解决微服务的服务发现、配置和管理。 Nacos的核心功能主要包括四个关键特性:
1.服务发现和服务健康监控
Nacos 为您的服务提供实时健康检查,并阻止来自不健康主机或服务实例的请求。它还提供集成的运行状况检查仪表板,可帮助您根据运行状况管理服务可用性和流量。
2.动态配置服务
动态配置消除了配置更改时重新部署应用程序和服务的需要,集中配置管理,更容易实现无状态服务,并且更容易按需弹性扩展服务。
Nacos还提供了一个控制台来管理所有服务和应用程序的配置。它还管理一组开箱即用的配置,包括配置版本跟踪、金丝雀发布、一键回滚配置和客户端配置更新状态跟踪。管理职能。
3.动态DNS服务
动态DNS服务支持加权路由,可以更轻松地为数据中心内网实现中间层负载均衡、更灵活的路由策略、流量控制以及简单的DNS解析服务。
4. 服务和元数据管理
从构建微服务平台的角度来看,Nacos可以管理您数据中心内的所有服务和元数据。这包括托管服务描述、生命周期、服务运行状况、服务流量管理、路由和安全策略以及最重要的指标统计数据。
Nacos基本架构
Nacos的整体架构如下图所示。
1。
服务注册是服务治理框架内构建的注册中心,每个服务单元注册其提供的服务的详细信息,并在注册中心创建服务列表。
服务注册中心必须以心跳方式监控其列表中的服务的可用性。如果没有,您必须从服务列表中删除不可用的服务。
2. 服务元数据
服务元数据是指描述服务的数据,包括服务端点、服务标签、服务版本号、服务实例权重、路由规则、安全策略等。
3、服务提供者:是指提供可重用、可调用服务的应用方。
4、服务消费者:指发起服务调用的应用方。
5.配置
在系统开发过程中,一些需要更改的参数和变量通常会从代码中分离出来,独立管理,并以独立的配置文件的形式存在。
6.配置管理
在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本控制、变更审核等所有与配置相关的活动统称为配置管理。
7. 命名服务
分布式系统中所有对象和实体的“名称”与相关元数据之间如服务名称-端点信息、分布式锁名称-锁所有者/状态信息、DNS域名-IP列表、服务发现和DNS提供映射管理服务。是名称服务的两个主要场景。
8.配置服务
在服务或应用程序运行时提供动态配置或元数据以及配置管理的服务提供商。
Nacos逻辑架构
Nacos注册中心原理
服务注册构建在服务治理框架内。各服务单位向登记中心登记其所提供服务的详细信息,并制作服务表。您可以在注册中心列表中找到它。
服务注册中心必须以心跳方式监控其列表中的服务的可用性。如果没有,您必须从服务列表中删除不可用的服务。
服务注册策略每5秒向nacos服务器发送一次心跳。心跳包括服务名称、服务IP、服务端口等信息。同时,nacos服务器也主动启动对服务器的健康检查。客户端并支持tcp/http检查。
如果实例在15秒内没有心跳并且健康检查失败,则认为实例不健康。如果30秒内健康检查失败,则删除该实例。
Nacos配置中心原理
Nacos客户端定期请求服务器修改的数据,超时设置为30秒。一旦配置更改,请求的响应将立即返回。否则,它将等待至少29.5 秒才返回响应。
本文收录于mikechen的30万+字原文《阿里架构师进阶专题合集》。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。
