首页 > 其他分享 >[nacos] Nacos <1> 架构与原理

[nacos] Nacos <1> 架构与原理

时间:2024-09-07 12:46:31浏览次数:12  
标签:服务 管理 配置管理 nacos Nacos 架构 数据

1 NACOS 架构与原理

架构

  • 推荐文献

基本架构

逻辑架构

  • 服务管理:实现服务CRUD、域名CRUD、服务健康检查、服务权重管理等。
  • 配置管理:实现配置的CRUD、版本管理、灰度管理、监控管理、推送轨迹、聚合数据等。
  • 元数据管理:提供元数据CURD和标记功能
  • 插件机制:实现三个模块共享实现扩展点SPI机制的能力
  • 事件机制:实现异步事件通知、sdk数据改变异步通知等逻辑
  • 日志模块:管理日志分类、日志级别、日志可移植性(特别是避免冲突)、日志格式、异常代码+帮助文档
  • 回调机制:sdk通过统一的方式告知数据,回调用户处理。接口和数据结构需要具备可扩展性
  • 寻址方式:解决ip、域名、nameserver、广播等各种寻址方式,需可扩展
  • 推送通道:解决服务器与存储、服务器、服务器与sdk之间的推送性能问题
  • 容量管理:管理各个租户,组下的容量,防止存储被爆满,影响服务可用性
  • 流量管理:按照租户、群组等多个维度控制请求频率、长链接数量、消息大小、请求流控。
  • 缓存机制:容灾目录、本地缓存、服务器缓存机制。容灾目录需要工具
  • 启动模式:根据独立模式、配置模式、服务模式、dns模式、全部模式启动不同的程序+UI
  • 一致性协议:解决不同的数据,不同的一致性要求,不同的一致性机制
  • 存储模块:解决数据持久化、非持久化存储,解决数据碎片化问题
  • Nameserver:解决namespace到clusterid的路由问题,解决用户环境与nacos物理环境的映射问题
  • CMDB:解决元数据存储,与三方cmdb系统的对接问题,解决应用、人、资源关系
  • 指标:公开标准指标数据,方便访问三向监控系统
  • 迹线:曝光标准迹线,方便与SLA系统、日志白化、推送轨迹等打通,并可与计量计费系统对接
  • 访问管理:相当于阿里云服务,分配身份、容量、权限流程
  • 用户管理:解决用户管理、登录、sso等问题。
  • 权限管理:解决身份、访问控制、角色管理等问题。
  • 审计系统:扩展接口方便接入不同公司的审计系统
  • 通知系统:核心数据变更,或操作,通过短信系统通知相应人员数据变更
  • OpenAPI:暴露标准Rest风格HTTP接口,简单易用,易于多语言集成
  • Console:简单易用的控制台,进行服务管理,配置管理等。
  • SDK:多语言 SDK
  • Agent:类似dns-f模式,或者与mesh等程序集成
  • CLI:通过命令行轻量级管理产品,就像git一样简单

核心概念

服务

  • 一个软件功能或一组软件功能(例如检索指定信息或执行一组操作),目的是使不同的客户端可以重复用于不同的目的(例如,通过跨进程网络调用)。
  • Nacos 支持几乎所有类型的服务:

服务注册中心

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

服务元数据

描述服务的数据,例如服务端点、服务标签、服务版本、服务实例权重、路由规则、安全策略。

服务提供商

提供可重用和可调用服务的流程或应用程序。

服务消费者

发起服务调用的进程或应用程序。

配置

在系统开发过程中,开发人员通常会将一些需要更改的参数或变量从代码中抽取出来,放在单独的配置文件中进行管理,这样可以让静态的系统工件或交付物(如WAR、JAR包)更好地贴合物理运行环境。配置管理一般是系统部署的一部分,由管理员或运维人员执行,修改配置是调整运行系统行为的有效方法。

配置管理

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

命名服务

将分布式系统中所有对象和实体的“名称”映射到关联的元数据,例如ServiceName-> Endpoints\Version etc...、Distributed Lock Name-> Lock Owner/Status Info、DNS Domain Name-> IP List。服务发现和 DNS 是命名服务的两大场景。

配置服务

为其他服务或应用提供动态配置、服务元数据和配置管理。

更多概念

领域模型

数据模型

  • Nacos 数据模型 Key 由三元组唯一确定。Namespace 默认为空字符串,公共命名空间(public),group 默认为 DEFAULT_GROUP。

服务实体关系模型

配置实体关系模型

围绕配置,主要有两个关联实体,一个是配置变更历史,一个是服务标签(用于标记分类,方便索引),通过ID进行关联。

类视图

Nacos-SDK 类视图

部件、部署和启动模式

2类 Artifacts

  • 两种 Nacos 支持标准 Docker 镜像(v0.2.0)和 nacos-.zip(tar.gz)两种构建方式,您可以根据自己的需求选择合适的构建方式来部署 Nacos 服务。

2类启动模式

  • Nacos 支持两种启动模式,你可以将服务注册中心与配置中心合并在一个进程中,也可以将两者分别部署在不同的集群中。

商业化支持:阿里云云服务

  • 除了用户自己部署上线Nacos服务外,Nacos还支持公有云,Nacos公有云服务将在阿里云的商业服务(如ACM、EDAS)中免费开放,也欢迎其他公有云厂商提供Nacos公有云服务。

X 参考文献

  • Nacos

标签:服务,管理,配置管理,nacos,Nacos,架构,数据
From: https://www.cnblogs.com/johnnyzen/p/18401560

相关文章

  • 大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决
           ......
  • 检索专业工程架构要求
    工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据分片存储在不同的节点上,并使用分布式文件系统或对象存储来存储大规模的索引数据。任......
  • 掌握检索技术:构建高效知识检索系统的架构与算法6
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • Nacos 认证绕过漏洞(CVE-2021-29441)
    相关介绍Nacos是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。小知识:Nacos初始用户......
  • MCU驱动架构的初探究
    Handler层什么是Handler层:Handler是将所有的资源聚集到一起的一层,包括用到的HAL硬件,队列,信号量,锁),包括挂载哪个硬件设备;以温湿度传感器为例,handler结构体typedefstructbsp_temp_humi_xxx_handler{//底层driver需要的接口timebase_interface_t*timebase_interface......
  • MySQL5.7.36之高可用架构部署-Atlas读写分离
    1、安装Atlas-2.2.1.el6.x86_64.rpmrpm-ivhAtlas-2.2.1.el6.x86_64.rpm2、进入Atlas目录并且备份配置文件cd/usr/local/mysql-proxy/confcptest.cnftest.cnf.bak3、密码加密采用的是自带的工具/usr/local/mysql-proxy/bin/encrypt123456#因为我的密码是1234564、......
  • debian11 申通 无感考勤 mysql postgresql nacos集群
     echo"nameserver114.114.114.114nameserver8.8.8.8">/etc/resolv.conf echo"debhttps://mirrors.aliyun.com/debian/bullseyemainnon-freecontribdeb-srchttps://mirrors.aliyun.com/debian/bullseyemainnon-freecontribdebhttps://......
  • 【系统架构设计师】论文:论软件架构的选择与应用
    更多内容请见:备考系统架构设计师-核心总结索引论文:论软件架构的选择与应用文章目录摘要正文总结摘要公司承担了某省社会保险管理信息系统的开发工作,我在该项目中担任系统架构设计师职务,主要负责设计应用系统架构和网络安全体系架构。该系统以IC卡为信息载体,完......
  • 【系统架构设计师】论文:论软件系统架构评估
    论文:论软件系统架构评估文章目录论文一摘要正文总结论文二摘要正文总结论文一摘要2021年3月,我公司承担了国家某安全中心漏洞挖掘系统的开发工作,我在该项目中承担系统架构设计师的职务,主要负责系统的架构设计。该项目的主要目的是依托大数据平台从互联网流量中挖......
  • 软件架构基础
    前言:无效的公理公理是一种陈述或命题,被认为是基本的、无需证明的真理。在数学中,公理是构建理论体系的基石。然而,在软件架构领域,我们发现许多曾经被视为公理的观念,随着时间的推移和软件开发生态系统的不断演进,逐渐变得不再适用或需要重新审视。软件架构师一直努力在不断变化......