Nacos 基础篇:Nacos简介、基本概念、基本架构、Standalone单机搭建部署 ...

打印 上一主题 下一主题

主题 542|帖子 542|积分 1626

什么是Nacos

Nacos:(Dynamic) Naming and Configuration Service,动态的服务发现和设置的服务,是一个更易于构建云原生应用的动态服务发现、设置管理和服务管理平台。
Nacos 致力于资助您发现、设置和管理微服务。Nacos 提供了一组简单易用的特性集,资助您快速实现动态服务发现、服务设置、服务元数据及流量管理。
Nacos 资助您更灵敏和轻易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的当代应用架构 (例如微服务范式、云原生范式) 的服务基础办法。
服务(Service)是 Nacos 世界的一等公民。Nacos 支持险些所有主流范例“服务”的发现、设置和管理:Kubernetes Service、gRPC & Dubbo RPC Service、Spring Cloud RESTful Service。
Nacos 真正将设置从应用中剥离出来,统一管理,优雅的办理了设置的动态变更、长期化、运维成本等问题。
应用自身既不需要去添加管理设置接口,也不需要本身去实现设置的长期化,更不需要引入“定时使命”以便低沉运维成本。Nacos 提供的设置管理功能,将设置干系的所有逻辑都收拢,并且提供简单易用的 SDK,让应用的设置可以非常方便被 Nacos 管理起来。
核心:设置管理、服务发现,即设置中心、服务注册中心。
Nacos 的关键特性包罗:
服务发现和服务康健监测
Nacos 支持基于 DNS 和基于 RPC 的服务发现。
Nacos 提供对服务的及时的康健检查,阻止向不康健的主机或服务实例发送哀求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的康健检查。
动态设置服务
动态设置服务可以让您以中心化、外部化和动态化的方式管理所有情况的应用设置和服务设置。
动态设置消除了设置变更时重新部署应用和服务的需要,让设置管理变得更加高效和灵敏。
设置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更轻易。
动态 DNS 服务
动态 DNS 服务支持权重路由,让您更轻易地实现中心层负载均衡、更灵活的路由计谋、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更轻易地实现以 DNS 协议为基础的服务发现,以资助您消除耦合到厂商私有服务发现 API 上的风险。
服务及其元数据管理
Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包罗管理服务的描述、生命周期、服务的静态依赖分析、服务的康健状态、服务的流量管理、路由及安全计谋、服务的 SLA 以及最首要的 metrics 统计数据。
总结:使用 Nacos 简化服务发现、设置管理、服务管理及管理的办理方案,让微服务的发现、管理、共享、组合更加轻易。
基本概念
设置服务 (Configuration Service)
在服务或者应用运行过程中,提供动态设置或者元数据以及设置管理的服务提供者。
Namespace
命名空间,租户粒度的设置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的设置。Namespace 的常用场景之一是不同情况设置的区分隔离,例如开辟测试情况和生产情况的资源(如设置、服务)隔离等。默认public。
Configuration Item
设置项。一个详细的可设置的参数与其值域,通常以 param-key=param-value 的形式存在。例如我们常设置系统的日记输出级别(logLevel=INFO|WARN|ERROR) 就是一个设置项。
Configuration Set
设置集。一组干系或者不干系的设置项的聚集称为设置集。在系统中,一个设置文件通常就是一个设置集。
Data ID
设置集ID,Data ID 通常用于构造划分系统的设置集。一个系统或者应用可以包含多个设置集,每个设置集都可以被一个故意义的名称标识。
Group
设置分组,区分 Data ID 相同的设置集。默认值 DEFAULT_GROUP 。设置分组的常见场景:不同的应用或组件使用了相同的设置范例,如 database_url 设置和 MQ_topic 设置。
名字服务 (Naming Service)
提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务,例如 ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List, 服务发现和 DNS 就是名字服务的2大场景。
Service
服务,通过预定义接口提供网络访问给客户端的软件功能。
ServiceName
服务名,服务提供的标识,通过该标识可以唯一确定其指代的服务。
Service Registry
服务注册中心,存储服务实例、服务元数据和服务负载均衡计谋的数据库。服务实例在启动时注册到服务注册表,并在关闭时注销。服务和路由器的客户端查询服务注册表以查找服务的可用实例。服务注册中心可能会调用服务实例的康健检查 API 来验证它是否能够处置惩罚哀求。
Service Discovery
服务发现,在盘算机网络上,(通常使用服务名)对服务下实例的地址和元数据进行探测,并以预先定义的接口提供给客户端进行查询。
Metadata
元信息,Nacos数据(如设置和服务)描述信息,如服务版本、权重、容灾计谋、负载均衡计谋、鉴权设置、各种自定义标签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。服务元数据是指包罗服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全计谋等描述服务的数据。
Application
应用,服务的属性,用于标识服务提供方。
Service Group
服务分组,不同的服务可以归类到同一分组。
Virtual Claster
虚拟集群,同一个服务下的所有服务实例组成一个默认集群, 集群可以被进一步按需求划分,划分的单元可以是虚拟集群。
Instance
实例,提供一个或多个服务的具有可访问网络地址(IPort)的历程。
Weight
权重,实例级别的设置。权重为浮点数。权重越大,分配给该实例的流量越大。
Health Check
康健检查,以指定方式检查服务下挂载的实例 (Instance) 的康健度,从而确认该实例 (Instance) 是否能提供服务。根据检查结果,实例 (Instance) 会被判断为康健或不康健。对服务发起解析哀求时,不康健的实例 (Instance) 不会返回给客户端。
Protect Threshold
康健掩护阈值,为了防止因过多实例 (Instance) 不康健导致流量全部流向康健实例 (Instance) ,继而造成流量压力把康健实例 (Instance) 压垮并形成雪崩效应,应将康健掩护阈值定义为一个 0 到 1 之间的浮点数。当域名康健实例数 (Instance) 占总服务实例数 (Instance) 的比例小于该值时,无论实例 (Instance) 是否康健,都会将这个实例 (Instance) 返回给客户端。这样做虽然损失了一部分流量,但是包管了集群中剩余康健实例 (Instance) 能正常工作。
基本架构


逻辑架构及其组件介绍




  • OpenAPI:暴露尺度Rest风格HTTP接口,简单易用,方便多语言集成
  • Console:易用控制台,做服务管理、设置管理等操作
  • SDK:多语言sdk
  • Agent:dns-f雷同模式,或者与mesh等方案集成
  • CLI:命令行对产品进行轻量化管理,像git一样好用
领域模型

数据模型

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

服务领域模型


设置领域模型

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

下载

在tags中找到想要下载的版本
下载链接

目次布局


设置

standalone单机模式中需要更改bin目次下的startup设置文件
windows修改.bat文件,linux修改.sh文件

找到MODE,将MODE修改为standalone,set MODE=“standalone”

Nacos支持多种数据库,默认是Mysql,在conf目次下有对应的Mysql脚本,mysql-schema.sql执行这一个就可以了。

导入mysql后编辑application设置文件将Mysql的信息设置上去
  1. db.url.0=jdbc:mysql://192.168.0.110:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
  2. db.user.0=root
  3. db.password.0=root!@#123
复制代码

启动

windows 情况下 进入bin目次下,双击startup.cmd文件


Linux 情况下通过命令启动
  1. ./startup.sh
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表