李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
01.Nacos介绍
Leefs
2023-01-03 PM
1788℃
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架构 ![01.Nacos介绍01.jpeg](https://lilinchao.com/usr/uploads/2023/01/1322905823.jpeg) **服务 (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。 ![01.Nacos介绍02.jpeg](https://lilinchao.com/usr/uploads/2023/01/1553797049.jpeg) **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 ![01.Nacos介绍03.jpg](https://lilinchao.com/usr/uploads/2023/01/755283780.jpg) *下载zip格式的安装包,然后进行解压缩操作* 本次安装的版本是nacos-server-2.2.0 **(2)启动Nacos** 默认的是**集群模式**,我们需要**单机启动** + 在Nacos的bin目录下,cmd中输入 ``` startup.cmd -m standalone ``` ![01.Nacos介绍04.jpg](https://lilinchao.com/usr/uploads/2023/01/1666585467.jpg) **(3)浏览器访问Nacos** 打开浏览器,访问如下地址:http://192.168.9.167:8848/nacos/index.html ![01.Nacos介绍05.jpg](https://lilinchao.com/usr/uploads/2023/01/867297914.jpg) 默认账号密码都是nacos ![01.Nacos介绍06.jpg](https://lilinchao.com/usr/uploads/2023/01/1780080830.jpg) 登录成功。
标签:
SpringCloudAlibaba
,
Nacos
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/2725.html
上一篇
09.MyBatisX插件介绍
下一篇
MySQL迁移到达梦数据库
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
容器深入研究
Spark SQL
Kafka
SpringBoot
Zookeeper
Azkaban
算法
GET和POST
SpringCloudAlibaba
Eclipse
Docker
Spark Core
Kibana
Stream流
Hadoop
Flink
JavaScript
Map
JavaWEB项目搭建
Quartz
数据结构
Golang
MyBatis-Plus
Jenkins
递归
二叉树
JavaSE
Redis
并发编程
Spark Streaming
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭