李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
01.Nacos介绍
Leefs
2023-01-03 PM
628℃
0条
[TOC] ### 一、Nacos概述 Nacos是Dynamic Naming and Configuration Service的首字母简称,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,是阿里巴巴的新开源项目 。 Nacos主要提供三种功能:服务注册与发现、动态配置服务、动态DNS服务。 > Nacos = Eureka+Config+Bus 服务(Service)是 Nacos 世界的一等公民。 Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理: > - Kubernetes Service > - gRPC & Dubbo RPC Service > - Spring Cloud RESTful Service #### Nacos 特性介绍 - 服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。 - 动态配置服务:动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。 - 动态 DNS 服务:动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单 DNS 解析服务。 - 服务及其元数据管理:支持从微服务平台建设的视角管理数据中心的所有服务及元数据。 *官网文档:https://nacos.io/zh-cn/index.html* ### 二、Nacos架构  **服务 (Service)** + 服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客户端可以为不同的目的重用(例如通过跨进程的网络调用)。 + Nacos 支持主流的服务生态,如 Kubernetes Service、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service。 **服务注册中心 (Service Registry)** - 服务注册中心,它是服务,其实例及元数据的数据库。 - 服务实例在启动时注册到服务注册表,并在关闭时注销。 - 服务和路由器的客户端查询服务注册表以查找服务的可用实例。 - 服务注册中心可能会调用服务实例的健康检查 API 来验证它是否能够处理请求。 **服务元数据 (Service Metadata)** + 服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据。 **服务提供方 (Service Provider)** - 是指提供可复用和可调用服务的应用方。 **服务消费方 (Service Consumer)** - 是指会发起对某个服务调用的应用方。 **配置 (Configuration)** + 在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。 + 目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。 + 配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成这个步骤。 + 配置变更是调整系统运行时的行为的有效手段之一。 **配置管理 (Configuration Management)** + 在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。 **名字服务 (Naming Service)** + 提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务 例如:ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List **配置服务 (Configuration Service)** + 在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。 ### 三、Nacos数据模型 Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP。  **Namespace** + 用于进行租户粒度的配置隔离。 + 不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。 + Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。 **Group** + Nacos 中的一组配置集,是组织配置的维度之一。 + 通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。 + 当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。 + 配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 MQ_topic 配置。 **Service** + 通过预定义接口网络访问提供给客户端的软件功能。 **DataId** + Nacos 中的某个配置集的 ID。 + 配置集 ID 是组织划分配置的维度之一。 + Data ID 通常用于组织划分系统的配置集。 + 一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。 + Data ID 通常采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。 此命名规则非强制 ### 四、类似中间件对比 | | Nacos | Eureka | Consul | CoreDNS | Zookeeper | | --------------- | -------------------------- | ---------- | ------------------ | ---------- | --------- | | 一致性协议 | CP+AP | AP | CP | / | CP | | 健康检查 | TCP/HTTP/MYSQL /ClientBeat | ClientBeat | TCP/HTTP /gRPC/Cmd | / | KeepAlive | | 负载均衡策略 | 权重/metadata/Selector | Ribbon | Fabio | RoundRobin | / | | 雪崩保护 | 有 | 有 | 无 | 无 | 无 | | 自动注销实例 | 支持 | 支持 | 支持 | 不支持 | 支持 | | 访问协议 | HTTP/DNS | HTTP | HTTP/DNS | DNS | TCP | | 监听支持 | 支持 | 支持 | 支持 | 不支持 | 支持 | | 多数据中心 | 支持 | 支持 | 支持 | 不支持 | 不支持 | | 跨注册中心同步 | 支持 | 不支持 | 支持 | 不支持 | 不支持 | | SpringCloud集成 | 支持 | 支持 | 支持 | 不支持 | 支持 | | Dubbo集成 | 支持 | 不支持 | 支持 | 不支持 | 支持 | | k8s集成 | 支持 | 不支持 | 支持 | 支持 | 不支持 | ### 五、Nacos安装并运行 > 本次在window系统上安装一个单机版的Nacos > > 环境准备:java8+maven **(1)官网下载Nacos** + 下载地址: https://github.com/alibaba/nacos/releases  *下载zip格式的安装包,然后进行解压缩操作* 本次安装的版本是nacos-server-2.2.0 **(2)启动Nacos** 默认的是**集群模式**,我们需要**单机启动** + 在Nacos的bin目录下,cmd中输入 ``` startup.cmd -m standalone ```  **(3)浏览器访问Nacos** 打开浏览器,访问如下地址:http://192.168.9.167:8848/nacos/index.html  默认账号密码都是nacos  登录成功。
标签:
SpringCloudAlibaba
,
Nacos
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/2725.html
上一篇
09.MyBatisX插件介绍
下一篇
MySQL迁移到达梦数据库
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
40
标签云
Stream流
递归
队列
Java阻塞队列
随笔
ajax
Golang基础
Yarn
CentOS
DataWarehouse
Kibana
Elasticsearch
Spark SQL
Filter
并发编程
JavaWEB项目搭建
Redis
正则表达式
Eclipse
VUE
二叉树
Spring
Ubuntu
线程池
BurpSuite
栈
Hbase
SpringBoot
Linux
Elastisearch
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞