前言
本系列是从头开始进行学习Nacos的相关知识,从相关概念到业务开发等等。本篇是第二篇,主要了解下Nacos的核心组成
入门篇:阿里Nacos系列——为什么要选择Nacos和Nacos的基础概念
入门篇:阿里Nacos系列——Nacos的核心概念
搭建篇:阿里Nacos系列——Nacos安装教程(带图–手把手教学)
搭建篇:阿里Nacos系列——(超详细、带图带源码)Nacos注册中心的搭建与测试
1 Nacos基础架构
本篇是结合官方文档,进行自我总结的一篇文章,如果想了解全部的Nacos概念和架构:https://nacos.io/zh-cn/docs/concepts.html
1.1 Nacos基本架构和概念
Nacos服务发现分为客户端(消费者)和服务端
客户端(消费者):
启动时,从服务端读取指定服务名称的实例列表,缓存到本地。每隔10秒向服务端短轮询一次服务的实例列表。
服务端:
通过心跳检测,发现服务提供者出现心跳超时,push消息到消费者,(消费者会基于udp协议建立一个监听,一旦接收到服务端传来的数据,就会更新本地缓存)。
1.2 数据模型
了解一个系统的核心组成,能帮助更好的入门和使用该系统
Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP。
Namespace:(环境隔离)
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。默认为public,没有指定命名空间时都会默认拉取到该命名下
Group:(区域隔离)
据业务需求,对不同的服务以及配置进行分组,通过不同的字符串名(分组名)来表示不同的分组,Nacos中 如果未显示的指明分组名,那么就会默认的划分在DEFAULT_GROUP分组之中!
Service/DataId:(个体隔离)
Data ID在Nacos中,我们可以理解为就是一个Spring Cloud应用的配置文件名,每个配置集都可以被一个有意义的名称标识。Data ID 通常采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则保证全局唯一性
1.Group+DataId组合在当前命名空间下是唯一的,即统一分组下,不会出现多个相同DataId的配置
2.不同的Namespace和Group间服务是隔离的,即服务注册到不同的分组时,无法使用OpenFeign指定服务名负载调用
3.Namespace+Group+DataId组合是唯一的,即不同命名空间下可有相同分组以及相同DataId,但同一个命名空间下Group与DataId则是唯一的
1.3 服务领域模型
Nacos服务领域模型主要分为实例、集群、服务。
服务级别
- 健康检查开关
- 健康检查开关
- 元数据
- 路由机制
- 保护阈值等设置
集群级别
- 健康检查模式
- 元数据
- 步机制
实例级别
- ip
- 端口
- 权重
- 健康检查状态
- 下线状态
- 元数据
- 响应时间