[nacos] Nacos 1 架构与原理

news/2024/11/16 0:27:58/文章来源:https://www.cnblogs.com/johnnyzen/p/18401560

1 NACOS 架构与原理

架构

  • 推荐文献
  • https://nacos.io/en-us/docs/architecture.html

基本架构

逻辑架构

  • 服务管理:实现服务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 支持几乎所有类型的服务:
  • Kubernetes 服务
  • gRPC | Dubbo RPC 服务
  • Spring Cloud RESTful 服务

服务注册中心

服务、实例和元数据的数据库。服务实例在启动时向服务注册表注册,并在关闭时注销。服务和/或路由器的客户端查询服务注册表以查找服务的可用实例。服务注册表可能会调用服务实例健康检查 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
  • https://nacos.io/en-us/docs/architecture.html

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

真人模特失业?AI虚拟试衣一键成图,IDM-VTON下载介绍

在电商行业竞争尤为激烈的当下,除了打价格战外,如何有效的控制成本,是每个从业者都在思考的问题 IDM-VTON是一个AI虚拟换装工具,旨在帮助服装商家解决约拍模特导致的高昂成本问题,只需一张服装图片,就可以生成各种身穿该服装的模特,大大简化了传统的产品展示过程 IDM-VT…

用空间清理调理风13重要物品14别人的杂物15杂乱与风水符号学

13 重要物品 在清理杂物时,别忘了大件东西。你一直讨厌的那件可怕的旧家具、堵塞客厅的三角钢琴、你从来不用的卷起来的地毯、后院生锈的汽车、角落里积满灰尘的十年前瑞士奶酪植物。 有些东西非常大,搬动它们是一项挑战,所以你要学会看穿它们的艺术,就像它们不再存在一样。…

秸秆禁烧烟火识别系统

秸秆禁烧烟火识别系统一旦检测到烟雾,秸秆禁烧识别系统将自动监测监控画面中是否存在秸秆焚烧处理,不用人工干涉。当秸秆禁烧烟火识别系统监测到火苗时,系统会自动报警,通知监控管理中心,提示相关人员及时处理。与此同时,将警报截屏和视频保存到数据表中,自动汇总。秸秆…

Javaweb-DQL-聚合函数

select count(*) from stu;-- 1 select max(math) from stu;-- 2 select min(math) from stu;-- 3 select sum(math) from stu;-- 4 select avg(math) from stu;-- 5 select min(english) from stu;-- 6

厨师帽识别系统 明厨亮灶

厨师帽识别系统即时检测餐饮厨房地区,当监控人员不戴厨师帽时,马上警报,与此同时储存警报截屏视频到数据库系统产生汇报,推荐给有关管理者,也可以依据报警记录和警报截屏、视频查看播放,进一步提高监控区域的操纵高效率,产生高效的监管功效,提升食品类安全管理。厨师帽…

河道水面结冰识别监测报警 河道冰水情冰凌图像识别

河道水面结冰识别监测系统它能够即时、智能化地监测和识别江河里的水面是否结冰,河道冰水情冰凌图像识别反复进行算法自我学习最新数据的升级。通过加工处理和分析后,马上传送给相关人员,有利于实时监控系统和破冰以便船舶通航,降低人力资源耗费,提高效率。智能化专注于人…

河道水面漂浮物识别检测

河道水面漂浮物识别检测根据监控摄像头搜集江河或湖水的短视频,截取图片中带有海上漂浮物的照片,河道水面漂浮物识别检测训练所需照片,形成数据实体模型,随后即时检测真正情景里的监控视频或照片。因而,完成检测的第一步是收集数据。河道水面漂浮物识别检测根据监控摄像头…

个人主页,简洁又好看,每个人都可以轻松搭建

今日周末不用上班,照例醒的很早,老婆孩子都还在睡觉,不便打扰,于是来到阁楼书房打开电脑,准备刷刷视频享受下愉快的周末休闲时光,启动浏览器,发现浏览器主页无法打开,主页指向的是我个人搭建的咖啡吧导航,一个囊括了我的常用网站及实用工具的导航站,配置的我的个人主…

P2056 [ZJOI2007] 捉迷藏

题意: 给出一个 \(n\) 个点的树,每个点有黑白两种颜色。初始时每个点都是黑色的。\(q\) 次操作,支持:C x 将第 \(x\) 个点的颜色反转。 G 询问树上两个黑色点的最远距离。分析: 尝试使用点分树,对于一条路径,可以从点分树的 \(lca\) 处统计,由于涉及到删除和添加两种操…

数学基础讲解-01

真题:易 设K法 消元的过程真题:2015 不定方程问题 必考 找到特征 解题入口 真题: 重点 没做出来一道题目,多解几次性质需要理解记忆 真题: 重点!!! 有陷阱、筛选作用 做错了 没考虑为0的情况 比较喜欢考细节 常见的坑不能约 需要移项一道题目做个三五遍不算多…

CF1945F Kirill and Mushrooms

题意 营地里的人一睡着,基里尔就偷偷溜出帐篷,去智者橡树那里采蘑菇。 众所周知,橡树下生长着 \(n\) 种蘑菇,每种蘑菇都有 \(v_i\) 的魔力。基里尔非常想用这些蘑菇制作一种魔力最大的灵药。 灵药的强度等于其中蘑菇的数量与这些蘑菇中最小魔力的乘积。为了配制灵药,基里尔…

我发布了一款相亲平台《i相遇》

因缘际会之下,我踏入了相亲平台的领域。起初,是为一位客户打造专属相亲应用,过程中深入体验了众多同类平台,却遗憾地发现它们普遍掺杂着欺诈的阴影——高昂的费用、兼职托儿的身影、以及虚假的钓鱼信息,不一而足。 完成客户项目后,我决定自己运营一款专为互联网人量身打造…