Nacos学习文档

news2024/11/26 7:40:52

目录

  • 1、Nacos是什么
  • 2、Nacos名词介绍
  • 3、Nacos中的data id是如何组装的?
  • 4、Nacos 融合 Spring Cloud,成为注册配置中心
    • 4.1、Maven依赖作用
    • 4.2、启动配置管理
      • 4.2.1、添加依赖
      • 4.2.2、在 bootstrap.yml(也支持properties格式) 中添加 配置中心地址、命名空间、组名、应用名称、环境配置、文件格式
        • 4.2.2.1、名词解释
        • 4.2.2.2、bootstrap.yml 示例
        • 4.2.2.3、Nacos配置说明
    • 4.3、启动服务发现
      • 4.3.1、添加依赖
      • 4.3.2、在 bootstrap.yml(也支持properties格式) 中添加 注册中心地址、命名空间、组名、应用名称、应用端口
        • 4.3.2.1、名词解释
        • 4.3.2.2、bootstrap.yml 示例
        • 4.3.2.3、Nacos注册结果说明
      • 4.3.3、通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能
    • 4.4、配置用户名和密码
    • 4.5、共享配置
      • 4.5.1、作用
      • 4.5.2、在 bootstrap.yml(也支持properties格式) 中添加 组名、配置集ID、自动刷新策略
        • 4.5.2.1、名词解释
        • 4.5.2.2、bootstrap.yml 示例
        • 4.5.2.3、Nacos配置说明
    • 4.6、扩展配置
      • 4.6.1、作用
      • 4.6.2、示例
    • 4.7、配置自动更新
    • 4.8、配置优先级
    • 4.9、汇总配置文件 bootstrap.yml 示例

1、Nacos是什么

Nacos是一个动态的服务发现、配置管理、服务管理的平台。
其中服务发现包括服务自动注册和发现。
配置管理包括配置的增删改查、在线编辑、历史版本查询以及恢复等
服务管理包括服务元数据管理、优雅上下线。

在这里插入图片描述

2、Nacos名词介绍

  • 命名空间(namespace):用于进行租户粒度的配置隔离。 在这里插入图片描述

  • 配置分组(group):Nacos 中的一组配置集,是组织配置的维度之一。
    在这里插入图片描述

  • 配置集 ID(data id):Data ID 通常用于组织划分系统的配置集。
    在这里插入图片描述

  • 综上所述:Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP。

在这里插入图片描述

3、Nacos中的data id是如何组装的?

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active 即为当前环境对应的profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 propertiesyaml 类型。

4、Nacos 融合 Spring Cloud,成为注册配置中心

4.1、Maven依赖作用

  • 集成 spring-cloud-starter-alibaba-nacos-config 依赖实现配置的动态变更。
  • 集成 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。

4.2、启动配置管理

4.2.1、添加依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${latest.version}</version>
</dependency>

注意: 版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

更多版本对应关系参考:版本说明 Wiki

4.2.2、在 bootstrap.yml(也支持properties格式) 中添加 配置中心地址、命名空间、组名、应用名称、环境配置、文件格式

4.2.2.1、名词解释
  • 配置中心地址:必须填写
  • 命名空间(namespace):默认是public,可以省略;如果不是该值,必须填写
  • 组名(group):默认是DEFAULT_GROUP,可以省略;如果不是该值,必须填写
  • 配置集ID(data id)
    • 应用名称:必须填写
    • 环境配置:非必须填写
    • 文件格式:必须填写,支持 propertiesyaml 类型,也包括yml类型
4.2.2.2、bootstrap.yml 示例
# Spring
spring: 
  application:
    # 应用名称
    name: ruoyi-system
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 命名空间
        namespace: test_namespace
        # 组名
        group: test_group
        # 配置文件格式
        file-extension: yaml
4.2.2.3、Nacos配置说明

直接看Nacos中的配置信息:
在这里插入图片描述

bootstrap.yml(左侧)Nacos(右侧)中的配置信息进行对照:

在这里插入图片描述

4.3、启动服务发现

4.3.1、添加依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>${latest.version}</version>
</dependency>

注意: 版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

更多版本对应关系参考:版本说明 Wiki

4.3.2、在 bootstrap.yml(也支持properties格式) 中添加 注册中心地址、命名空间、组名、应用名称、应用端口

4.3.2.1、名词解释
  • 注册中心地址:必须填写
  • 命名空间(namespace):默认是public,可以省略;如果不是该值,必须填写
  • 组名(group):默认是DEFAULT_GROUP,可以省略;如果不是该值,必须填写
  • 应用名称:必须填写
  • 应用端口:必须填写
4.3.2.2、bootstrap.yml 示例
# 端口
server:
  port: 9201

# Spring
spring: 
  application:
    # 应用名称
    name: ruoyi-system
  cloud:
    nacos:
      discovery:
        # 注册中心地址
        server-addr: 127.0.0.1:8848
        # 命名空间
        namespace: test_namespace
        # 组名
        group: test_group
4.3.2.3、Nacos注册结果说明

在这里插入图片描述

其中配置管理和服务管理没啥关系

4.3.3、通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {

  public static void main(String[] args) {
    SpringApplication.run(NacosProviderApplication.class, args);
  }

  @RestController
  class EchoController {
    @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
    public String echo(@PathVariable String string) {
      return "Hello Nacos Discovery " + string;
    }
  }
}

4.4、配置用户名和密码

对于配置中心和注册中心,支持统一设置,也支持分别设置

下面是统一设置的效果,然后分别设置时将用户名密码放在discoveryconfig下面一级即可

spring: 
  cloud:
    nacos:
     # 用户名
      username: nacos
     # 密码
      password: nacos
      # 服务注册
      discovery:
        ……
      # 服务配置
      config:
        ……

4.5、共享配置

4.5.1、作用

将公共配置从单个服务中抽取出来,然后共享这些配置,做到一处修改,处处生效。从而降低配置错误的风险

4.5.2、在 bootstrap.yml(也支持properties格式) 中添加 组名、配置集ID、自动刷新策略

4.5.2.1、名词解释
  • 组名(group):默认是DEFAULT_GROUP,可以省略;如果不是该值,必须填写
  • 配置集ID(data id):必须填写,即 全名称
  • 自动刷新策略:默认是false,该策略开启后和 @RefreshScope 注解配合后,修改配置内容后立即生效
4.5.2.2、bootstrap.yml 示例
spring: 
  cloud:
    nacos:
      # 服务配置
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 命名空间
        namespace: test_namespace
        # 组名
        group: test_group
        # 配置文件格式
        file-extension: yaml
        # 共享配置
        shared-configs:
            # 组名
          - group: test_group
            # 配置集ID
            data-id: application-dev.yaml
            # 自动刷新策略
            refresh: true

4.5.2.3、Nacos配置说明

在这里插入图片描述

4.6、扩展配置

4.6.1、作用

使用extension-configs,作用和共享配置类似,但是优先级比共享配置高

4.6.2、示例

在这里插入图片描述

4.7、配置自动更新

通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${useLocalCache:false}")
    private boolean useLocalCache;

    @RequestMapping("/get")
    public boolean get() {
        return useLocalCache;
    }
}

4.8、配置优先级

  1. Nacos中具体的服务配置
  2. 扩展配置(多个扩展配置,越靠后优先级越高)
  3. 共享配置(多个共享配置,越靠后优先级越高)
  4. jar包启动的本地配置

4.9、汇总配置文件 bootstrap.yml 示例

# 应用端口
server:
  port: 9201

# Spring
spring: 
  application:
    # 应用名称
    name: ruoyi-system
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
     # 用户名
      username: nacos
     # 密码
      password: nacos
      # 服务注册
      discovery:
        # 注册中心地址
        server-addr: 127.0.0.1:8848
        # 命名空间
        namespace: test_namespace
        # 组名
        group: test_group
      # 服务配置
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 命名空间
        namespace: test_namespace
        # 组名
        group: test_group
        # 配置文件格式
        file-extension: yaml
        # 共享配置
        shared-configs:
            # 组名
          - group: test_group
            # 配置集ID
            data-id: application-shared.yaml
            # 自动刷新策略
            refresh: true
        # 扩展配置
        extension-configs:
            # 组名
          - group: test_group
            # 配置集ID
            data-id: application-extension.yaml
            # 自动刷新策略
            refresh: true

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT简易项目 数据库可视化界面 数据库编程SQLITE QT5.12.3环境 C++实现

案例需求&#xff1a; 完成数据库插入&#xff0c;删除&#xff0c;修改&#xff0c;查看操作。 分为 插入&#xff0c;删除&#xff0c;修改&#xff0c;查看&#xff0c;查询 几个模块。 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget…

【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入

1.使用命令新建三个.c文件vi main.c&#xff0c;vi input.c&#xff0c;vi caclcu.c&#xff0c;两个.h文件vi input.h&#xff0c;vi caclcu.h 2.vi Makefile&#xff1a;新建Makefile文件&#xff0c;输入一下内容 注意&#xff1a;命令列表中每条命令前用TAB键&#xff0c;不…

Gazebo仿真实现无人机+Apriltag码动态跟踪

目录 演示 一、环境 二、配置 创建模型 首先相机创建 添加相机 Apriltag创建 地图添加apriltag码 Apriltag_ros配置 三、代码运行 四、问题 修改相机模型的参数 演示 一、环境 ROSgazebo配置 Px4Mavros Apriltag_ros编译 二、配置 在默认的mavros_posix_sitl.l…

H.265流媒体播放器EasyPlayer.js播放器提示MSE不支持H.265解码可能的原因

随着人工智能和机器学习技术的应用&#xff0c;流媒体播放器将变得更加智能&#xff0c;能够根据用户行为和偏好提供个性化的内容推荐。总体而言&#xff0c;流媒体播放器的未来发展将更加注重技术创新和用户互动&#xff0c;以适应不断变化的市场需求和技术进步。 提示MSE不支…

加菲工具 - 好用免费的在线工具集合

加菲工具 https://orcc.online AI 工具 集合了目前主流的&#xff0c;免费可用的ai工具 文档处理 pdf转word、office与pdf互转等等工具都有链接 图片图标 统计了好用免费的在线工具 编码解码 base64编码解码、url编码解码、md5计算、进制转换等等 其它 还有其他好用的…

【linux学习指南】初识Linux进程信号与使用

文章目录 &#x1f4dd;信号快速认识&#x1f4f6;⽣活⻆度的信号&#x1f4f6; 技术应⽤⻆度的信号&#x1f309; 前台进程&#xff08;键盘&#xff09;&#x1f309;⼀个系统函数 &#x1f4f6;信号概念&#x1f4f6;查看信号 &#x1f320; 信号处理&#x1f309; 忽略此信…

今天你学C++了吗?——C++中的类与对象(第二集)

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…

Anaconda3 2024 jupyter notebook 配置默认文件路径

我的版本如下&#xff1a; 第一步&#xff1a; 打开命令行anaconda prompt &#xff0c; 敲下面命令生成配置文件 jupyter notebook --generate-config 如下图&#xff1a; 修改配置jupyter_notebook_config.py 文件中搜索c.ServerApp.root_dir &#xff08; 对于 Anac…

【抓包专题】burpsuitProxifier小程序抓包

抓包系列文章 burpsuit&Proxifier&小程序抓包 抓包系列文章前言一、工具下载二、获取证书并安装到本地三、抓包测试 前言 抓包是进行渗透的第一步&#xff0c;包都抓不到&#xff0c;渗透就不要谈了&#xff0c;废话少说&#xff0c;开干 一、工具下载 Proxifier安装使…

springboot 异步 @Async 的日常使用及失效场景

文章目录 springboot 异步 Async 的日常使用引言一、Async 使用位置二、Async 使用三、注解 Async 失效的情况&#xff08;1&#xff09;调用同一个类中的异步方法&#xff08;内部调用&#xff09;&#xff08;2&#xff09;未使用 EnableAsync 注解&#xff08;3&#xff09;…

WebGIS技术汇总

WebGIS系统通常都围绕地图进行内容表达&#xff0c;但并不是有地图就一定是WebGIS&#xff0c;所以有必要讨论下基于Web的地图API分类及应用场景。 Web上的Map API主要分类如下几类&#xff1a; Charts&#xff1a;以D3.js&#xff0c;Echarts等为代表。LBS&#xff1a;以高德…

使用Vue3来实现一个倒计时器以及倒计时任务

本内容使用Vue3&#xff0c;以及element-plus辅助开发。 首先展示倒计时器的功能&#xff1a; 手动设置倒计时器的倒计时时间开始倒计时按钮暂停倒计时按钮重新开始倒计时按钮 其次展示倒计时任务管理界面功能&#xff1a; 创建倒计时任务选择任务并进行倒计时删除任务 目录 一…

VMware Workstation 虚拟机运行卡顿解决方案

前言 由于我们网站主力是模拟器多开&#xff0c;VMware虚拟机纯属我个人使用的经验&#xff0c;仅供参考。顺带一提&#xff1a;多开鸭的系统精简掉的是Hyper-V&#xff0c;跟VMware完全没有任何关系&#xff0c;Hyper-V跟雷电这些模拟器会冲突&#xff0c;但是移除之后不会影…

GitLab|应用部署

创建docker-compose.yaml文件 输入docker-compose配置 version: 3.8 services:gitlab:image: gitlab/gitlab-ce:15.11.2-ce.0restart: alwayscontainer_name: gitlab-ceprivileged: truehostname: 192.168.44.235environment:TZ: Asia/ShanghaiGITLAB_OMNIBUS_CONFIG: |exter…

ssm182在线作业管理系统的设计与实现+vue(论文+源码)_kaic

设计题目&#xff1a;在线作业管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所…

LeetCode-632. Smallest Range Covering Elements from K Lists [C++][Java]

目录 题目描述 解题思路 【C】 【Java】 LeetCode-632. Smallest Range Covering Elements from K Listshttps://leetcode.com/problems/smallest-range-covering-elements-from-k-lists/description/ 题目描述 You have k lists of sorted integers in non-decreasing o…

指针的奥秘:深入探索内存的秘密

前言 在计算机编程的广阔天地中&#xff0c;指针作为一种独特的数据类型&#xff0c;它不仅是C语言的核心&#xff0c;也是理解计算机内存管理的基石。指针的概念虽然强大&#xff0c;但对于初学者来说&#xff0c;它常常是学习过程中的一个难点。本文旨在揭开指针的神秘面纱&a…

⭐ Unity 资源管理解决方案:Addressable_ Demo演示

一、使用Addressable插件的好处&#xff1a; 1.自动管理依赖关系 2.方便资源卸载 3.自带整合好的资源管理界面 4.支持远程资源加载和热更新 二、使用步骤 安装组件 1.创建资源分组 2.将资源加入资源组 3.打包资源 4.加载资源 三种方式可以加载 using System.Collections…

红日靶场-4

环境搭建 我们这里会拿到三台主机&#xff0c;一台web主机&#xff0c;一台win7主机&#xff0c;一台DC主机 机器密码 WEB主机 ubuntu:ubuntu WIN7主机 douser:Dotest123 (DC)WIN2008主机 administrator:Test2008 登陆后需修改密码&#xff0c;我这里修改为1qazWSX 网络配…

使用八爪鱼爬虫抓取汽车网站数据,分析舆情数据

我是做汽车行业的&#xff0c;可以用八爪鱼爬虫抓取汽车之家和微博上的汽车文章内容&#xff0c;分析各种电动汽车口碑数据。 之前&#xff0c;我写过很多Python网络爬虫的案例&#xff0c;使用requests、selenium等技术采集数据&#xff0c;这次尝试去采集小米SU7在微博、汽车…