nacos--基础--1.3--理论--架构

news2025/1/14 18:25:29

nacos–基础–1.3–理论–架构


1、基本架构及概念

在这里插入图片描述

1.1、服务 (Service)

  1. 是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客户端可以为不同的目的重用(例如通过跨进程的网络调用)。
  2. Nacos 支持主流的服务生态,举例如下
    1. Kubernetes Service
    2. gRPC | Dubbo RPC Service
    3. Spring Cloud RESTful Service。

1.2、服务注册中心 (Service Registry)

  1. 服务注册中心,它是服务实例及元数据的数据库。
  2. 服务实例在启动时注册到服务注册表,并在关闭时注销。
  3. 服务和路由器的客户端查询服务注册表以查找服务的可用实例。
  4. 服务注册中心可能会调用服务实例的健康检查 API 来验证它是否能够处理请求。

1.3、服务元数据 (Service Metadata)

  1. 服务端点(endpoints) 信息
  2. 服务标签 信息
  3. 服务版本号 信息
  4. 服务实例权重 信息
  5. 路由规则 信息
  6. 安全策略等 信息

1.4、服务提供方 (Service Provider)

是指提供可复用和可调用服务的应用方。

1.5、服务消费方 (Service Consumer)

是指会发起对某个服务调用的应用方。

1.6、配置 (Configuration)

  1. 在系统开发过程中,开发者通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。
  2. 目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。
    员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。

1.7、配置管理 (Configuration Management)

在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。

1.8、名字服务 (Naming Service)

  1. 提供分布式系统中所有对象(Object)、实体(Entity)的"名字"到关联的元数据之间的映射管理服务
  2. 举例:
    1. ServiceName -> Endpoints Info
    2. Distributed Lock Name -> Lock Owner/Status Info
    3. DNS Domain Name -> IP List
  3. 服务发现和 DNS 就是名字服务的2大场景。

1.9、配置服务 (Configuration Service)

在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。

2、逻辑架构及其组件介绍

在这里插入图片描述

2.1、服务管理(功能列表)

  1. 服务CRUD
  2. 域名CRUD
  3. 服务健康状态检查
  4. 服务权重管理

2.2、配置管理(功能列表)

  1. 配置管理CRUD
  2. 版本管理
  3. 灰度管理
  4. 监听管理
  5. 推送轨迹
  6. 聚合数据

2.3、元数据管理

提供元数据CURD 和打标能力

2.4、插件机制

  1. 实现三个模块可分可合能力
  2. 实现扩展点SPI机制

2.5、事件机制

  1. 实现异步化事件通知
  2. 实现sdk数据变化异步通知

2.6、日志模块(功能列表)

  1. 日志分类
  2. 日志级别
  3. 日志可移植性(尤其避免冲突)
  4. 日志格式
  5. 异常码+帮助文档

2.7、回调机制

  1. sdk通知数据,通过统一的模式回调用户处理。
  2. 接口和数据结构需要具备可扩展性

2.8、寻址模式

  1. 解决ip,域名,nameserver、广播等多种寻址模式
  2. 需要可扩展

2.9、推送通道

解决server与存储、server间、server与sdk间推送性能问题

2.10、容量管理

管理每个租户,分组下的容量,防止存储被写爆,影响服务可用性

2.11、流量管理

按照租户,分组等多个维度对请求频率,长链接个数,报文大小,请求流控进行控制

2.12、缓存机制

  1. 容灾目录
    1. 使用需要工具
  2. 本地缓存
  3. server缓存机制

2.13、启动模式

按照单机模式,配置模式,服务模式,dns模式,或者all模式,启动不同的程序+UI

2.14、一致性协议

解决不同数据,不同一致性要求情况下,不同一致性机制

2.15、存储模块

解决数据持久化、非持久化存储,解决数据分片问题

2.16、Nameserver

  1. 解决namespace到clusterid的路由问题
  2. 解决用户环境与nacos物理环境映射问题

2.17、CMDB

  1. 解决元数据存储,与三方cmdb系统对接问题
  2. 解决应用,人,资源关系

2.18、Metrics

暴露标准metrics数据,方便与三方监控系统打通

2.19、Trace

暴露标准trace,方便与SLA系统打通,日志平白化,推送轨迹等能力,并且可以和计量计费系统打通

2.20、接入管理

相当于阿里云开通服务,分配身份、容量、权限过程

2.21、用户管理

解决用户管理,登录,sso等问题

2.22、权限管理

解决身份识别,访问控制,角色管理等问题

2.23、审计系统

扩展接口方便与不同公司审计系统打通

2.24、通知系统

核心数据变更,或者操作,方便通过SMS系统打通,通知到对应人数据变更

2.25、OpenAPI

  1. 暴露标准Rest风格HTTP接口
  2. 简单易用
  3. 方便多语言集成

2.26、Console

  1. 易用控制台
  2. 做服务管理、配置管理等操作

2.27、SDK

多语言sdk

2.28、Agent

dns-f类似模式,或者与mesh等方案集成

2.29、CLI

命令行对产品进行轻量化管理,像git一样好用

3、领域模型

3.1、数据模型

在这里插入图片描述

  1. Nacos 数据模型 Key 由三元组唯一确定
  2. Namespace:
    1. 默认值:public
    2. 这个就是配置环境,比如
      1. 开发环境
      2. 测试环境
  3. Group:
    1. 默认值:DEFAULT_GROUP。
    2. 这个就是配置项目,比如
      1. OA项目
  4. service/detaId:
    1. 具体的配置文件,比如 application.xml

3.2、服务领域模型

在这里插入图片描述

3.3、配置领域模型

围绕配置,主要有两个关联的实体
1. 一个是配置变更历史
2. 一个是服务标签(用于打标分类,方便索引),由 ID 关联。

在这里插入图片描述

4、类视图

4.1、Nacos-SDK 类视图

在这里插入图片描述

5、构建物、部署及启动模式

在这里插入图片描述

5.1、两种交付工件

  1. 支持 标准 Docker 镜像(TODO: 0.2版本开始支持) 的构建物。
  2. 支持 zip(tar.gz)压缩包 的构建物。

5.2、两种启动模式

  1. 支持将注册中心(Service Registry)与配置中心(Config Center) 在一个进程合并部署
  2. 支持将注册中心(Service Registry)与配置中心(Config Center) 分离部署

5.3、免费的公有云服务模式

Nacos 也支持公有云模式,在阿里云公有云的商业产品(如ACM,EDAS) 中会提供 Nacos 的免费的公有云服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/82187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[2022-12-11]神经网络与深度学习 hw12 - 小作业

contentshw12 - 不知道该起个什么名字task1题目内容题目分析题目解答题目总结task2题目内容题目分析题目解答题目总结task3题目内容题目分析题目解答题目总结写在最后hw12 - 不知道该起个什么名字 task1 题目内容 在小批量梯度下降中,尝试分析为什么学习率要和批…

苦卷28天,P9大佬给我的Alibaba面试手册!终于成功踹开字节大门

怎么说呢,今年真的是寒气逼人啊!在这个大环境下,裁员已经不算是特别的事情,粗暴裁员也许是未来一种趋势…在职的卷的起飞,离职的找不到好工作。 做点能做的:跑跑步骑骑车多锻炼;当当上面正版书…

[附源码]Python计算机毕业设计大学生心理健康管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

eNSP综合实验合集(eNSP综合大作业合集)_可先收藏

作者:BSXY_19计科_陈永跃BSXY_信息学院注:未经允许禁止转发任何内容**注:在该文章中就只对ensp综合实验做一个总结和归纳,只给出相应的topo图和需求说明和对应的文章的连接。有什么问题也可以私信我,看到都会回复的。文…

picoCTF 密码学方向RSA算法做题记录

RSA算法原理: https://blog.csdn.net/qq_45894840/article/details/128204460?spm1001.2014.3001.5502Mind your Ps and Qs 题目描述:In RSA, a small e value can be problematic, but what about N? Can you decrypt this? 下载题目 在这里可以看…

初级软件测试面试会问什么 掌握好这两几个方法,还怕拿捏不住hr?

初级软件测试工程师大多为新入门的小白,在经历面试时,往往也是最忐忑的一部分人,为此,我特为大家整理了一些初级软件测试面试会问的问题,帮助你们在面试时能够从容不迫的回答出hr的问题,拿下offer&#xff…

Python实现PSO粒子群优化卷积神经网络CNN分类模型项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取 1.项目背景 PSO是粒子群优化算法(Particle Swarm Optimization)的英文缩写,是一种…

ESB产品UI升级总结

一款好的产品需要不断地打磨才能变得更完整、更稳定。企业服务总线ESB产品作为数通畅联的核心产品,为了能够更好地迎合客户的需求,实现更好的视觉效果和体验感,需要不断地迭代升级。 本次升级主要是针对整体页面进行优化以及对部分功能进行修…

【C++】vector迭代器失效与深浅拷贝问题

vector迭代器失效与深浅拷贝问题 文章目录vector迭代器失效与深浅拷贝问题一、vector迭代器失效问题1. insert迭代器失效1.1.扩容导致野指针1.2.迭代器指向位置意义改变1.3.windows下VS中标准库和Linux下g中标准库对insert迭代器失效的处理2. erase迭代器失效2.1.迭代器失效指向…

UniMSE(2022)统一的多模态情感分析与情感识别(多层融合和对比学习)

论文题目(Title):UniMSE: Towards Unified Multimodal Sentiment Analysis and Emotion Recognition 研究问题(Question):短情绪emotions和长情绪sentiments的分析和识别 研究动机(Motivation…

JAVA之 Maven进阶 分模块开发与设计 依赖管理 聚合 继承 属性 多环境配置与应用 私服

分模块开发意义 我们先创建一个模块并设计相应的内容,pom文件中会有该模块的信息 然后运用maven的install运行,下载该模块的jar到本地仓库 然后需要用到该模块的时候 我们在另一个模块的pom中导入创建的模块坐标就可以了 依赖管理 依赖具有传递性 直…

北京智汇云舟科技数字孪生三大创新应用场景

目前,数字孪生技术正在通过各种行业以无数不同的方式被使用,以产生一些惊人的效果。世界各地不同行业的公司正在采用数字孪生系统来改进从流程到供应链管理、从设施管理到满足能源和可持续发展目标的方方面面。今天我们将重点从轨道交通、学校、能源水利…

NeurIPS 2022-10大主题、50篇论文总结

2672篇主要论文,63场研讨会,7场受邀演讲,包括语言模型、脑启发研究、扩散模型、图神经网络……NeurIPS包含了世界级的AI研究见解,本文将对NeurIPS 2022做一个全面的总结。 第36届Neural Information Processing Systems Conferenc…

“美亚杯”第二届中国电子数据取证大赛答案解析(团体赛)

1. 根据所提供的文件,在映像文件的采集过程中,曾使用那一种的写入保护设备? A)软件写入保护设备 B)WiebeTech写入保护设备 C)EPOS写入保护器 D)Tableau取证工具SATA / IDE Bridge IEEE 1394…

内容完美!阿里技术官21年新肝出了一份MySQL笔记+面试题

目录 共有12个章节的内容,看大标题就知道全部都是MySQL的重要知识! 内容过多,没有办法全部展示 部分内容截图 Mysql权限 MySql数据类型 锁 业务设计 索引与执行计划 MySQL面试笔记 面试笔记分为6章,分别是MySQL基础篇、MySQL索引…

【脚本项目源码】Python制作多功能音乐播放器,打造专属你的音乐播放器

前言 本文给大家分享的是如何通过利用Python实现多功能音乐播放器,废话不多直接开整~ 开发工具 Python版本: 3.6 相关模块: os模块 sys模块 time模块 random模块 PyQt5模块 环境搭建 安装Python并添加到环境变量,pip安…

Pro_12丨为股指而战

量化策略开发,高质量社群,交易思路分享等相关内容 『正文』 ˇ 大家好,今天我们分享2022年度最后一期策略——股指专属策略。本期策略是2022年专门为股指而开发的专属策略,算是我个人对明年的一厢情愿吧! 该策略由超…

剑指Serverless, 入围Forrester Wave, 6.5 LTS 预览,TiDB 多元数据生态再升级 | PingCAP DevCon 2022

2022 年 12 月 1 日 - 3 日,由 PingCAP 主办的年度数据技术盛会 PingCAP DevCon 2022 在线上成功举行。本届 DevCon 以 "去发现,去挑战" 为主题,邀请了多位行业意见领袖、专家学者和 70 多位来自全球的技术大咖聚焦云原生、HTAP、S…

打造家居建材企业核心竞争力,数商云SCM管理系统高效高质满足企业采购需求

随着消费水平的提高和消费观念的升级,中国房地产市场从增量时代走向存量时代,作为家居建材家装业的上游,房地产行业的变动影响着家居建材行业的发展。当前家居建材行业正处于调整分化、转型升级的关键时期,也是创新动力最强的时期…

Docker-数据卷(Data Volumes)dockerfile

目录 一,宿主机与容器之间的文件拷贝 1.1 容器中怎么上传项目(文件) 1.2 从宿主机拷贝文件到容器 1.3 从容器中拷贝文件到宿主机 二 数据卷 三 数据卷容器 四 Dockerfile Dockerfile制作增强版 自定义centos 具备vim以及ifconfig Dock…