当前位置: 首页 > news >正文

nacos配置中心的使用规则

什么是nacos配置中心

所谓配置中心:将项目需要的配置信息保存在配置中心,需要读取时直接从配置中心读取,方便配置管理的微服务工具

我们可以将部分yml文件的内容保存在配置中心

一个微服务项目有很多子模块,这些子模块可能在不同的服务器上,如果有一些统一的修改,我们要逐一修改这些子模块的配置,由于它们是不同的服务器,所以修改起来很麻烦

如果将这些子模块的配置集中在一个服务器上,我们修改这个服务器的配置信息,就相当于修改了所有子模块的信息,这个服务器就是配置中心

**使用配置中心的原因就是能够达到高效的修改各模块配置的目的**

配置中心的使用

Nacos既可以做注册中心,也可以做配置中心

Nacos做配置中心,支持各种格式\类型的配置文件

properties\yaml(yml)\txt\json\xml等

Nacos数据结构

 

namespace:命名空间

group:分组

Service/DataId:具体数据

**命名空间**

namespace是Nacos提供的最大的数据结构

一个Nacos可以创建多个命名空间

一个命名空间能够包含多个group

每一个group中又可以包含多条配置信息

在nacos中创建命名空间

 

在上图连接的位置可以新增命名空间,填写命名空间名称和描述即可

Nacos有默认的命名空间public不能删除和修改

添加命名空间后,我们在Nacos中注册的服务或添加的配置就可以指定命名空间了

因为多个命名空间可以隔离项目,每个项目使用自己的命名空间,互不干扰

 

**分组**

一个命名空间中可以有多个分组,进行进一步分离

我们使用时,如果不需要进一步分组,推荐使用group名称:DEFAULT_GROUP

**服务或配置**

确定了命名空间和分组之后

我们就可以添加服务或配置了

之前我们启动的各种模块都是服务,之前都是默认保存在public命名空间中

下面我们主要使用配置中心的功能,在命名空间中添加配置

添加配置就是设置DataId

实际在Nacos中定位一个配置的结构为

Namespace>Group>DataId

Nacos添加配置

Nacos首页->配置管理->配置列表->添加配置(右侧的大"+"号)

 

添加cart模块数据库连接配置

 

项目读取配置

csmall-cart-webapi模块要读取连接数据库的配置

如果要读取配置中心的信心,首先要添加依赖

```xml
<!--    nacos配置中心依赖  -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--   支持SpringCloud加载系统配置的依赖   -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
```

如果SpringBoot版本不是2.5.x,匹配的SpringCloud版本不是2020.x

可能添加的依赖不同,尤其是加载系统配置的依赖

需要根据实际的SpringBoot\SpringCloud版本来变化

像其他程序一样,在添加完依赖之后,还需要添加yml文件的配置

我们使用过application.properties和application.yml两种配置文件添加配置

实际上这两个配置文件加载是有顺序的

先加载yml

后加载properties

如果两个配置文件同时设置了同一个属性,后加载的覆盖掉先加载的

在SpringCloud环境下,我们添加了加载系统配置的依赖,当前项目就支持了额外一组配置文件

它们是bootstrap.yml和bootstrap.properties

这组配置文件实际开发时,主要配置系统内容,一般都是不轻易修改的

所以这组配置文件的加载时机,整体早于application.properties这一组

一个SpringCloud项目加载配置文件的顺序最终可能如下图

 

因为配置文件的特性,bootstrap这一组是加载系统配置的

所以我们读取配置中心的配置信息,最好添加在bootstrap.yml\properties中

下面我们就在cart-webapi项目中resources文件夹中添加bootstarp.yml文件

```yaml
spring:
  cloud:
    nacos:
      config:
        # 指定配置中心的位置
        server-addr: localhost:8848
        # 指定我们所在文件的组名(如果不指定命名空间,默认就是public)
        group: DEFAULT_GROUP
        # 加载配置文件的方式:
        # 默认情况下,加载配置信息的格式为[服务名称].[后缀名称]
        # 当前服务器名称为nacos-cart,所以只需要指定后缀名即可
        file-extension: yaml
        # 读取public命名空间中组名为DEFAULT_GROUP,DataId为nacos-cart.yaml的文件
```

如果一切顺利,那么cart模块是可以通过knife4j测试操作连接数据库的

我们可以新增购物车信息,或删除购物车信息后检查数据库是否有对应操作

因为我们已经删除了本地yml文件中数据库的配置,所以,它能连接操作数据库一定是配置中心生效了!

相关文章:

  • 计算机毕业设计springboot+vue基本微信小程序的学生健康管理小程序
  • 董宇辉:读书让你更加深刻|程序员必读的一本书
  • Spring注解驱动之InitializingBean和DisposableBean
  • 微信输入法来了,如何下载?
  • Metacat实现原理解析
  • MTK Camera Senor Bring up 复盘总结
  • map有关的运算符重载
  • Java项目硅谷课堂学习笔记-P9-整合网关与实现订单和营销管理模块
  • 我的周刊(第055期)
  • 【GraphSAGE实践】YelpChi评论图数据集上的反欺诈检测
  • 基于单目和低成本GPS的车道定位方法
  • MyBatisPlus——多表查询——多条件查询——分页查询
  • 面向跨模态匹配的噪声关联学习
  • Java中的反射
  • java毕业设计旅游网站设计mybatis+源码+调试部署+系统+数据库+lw
  • JavaScript-如何实现克隆(clone)函数
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • AHK 中 = 和 == 等比较运算符的用法
  • JS基础之数据类型、对象、原型、原型链、继承
  • Python3爬取英雄联盟英雄皮肤大图
  • vue--为什么data属性必须是一个函数
  • Zsh 开发指南(第十四篇 文件读写)
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 浮现式设计
  • 给第三方使用接口的 URL 签名实现
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 精彩代码 vue.js
  • 前端相关框架总和
  • 前嗅ForeSpider教程:创建模板
  • 数组的操作
  • 小程序01:wepy框架整合iview webapp UI
  • 学习笔记:对象,原型和继承(1)
  • ionic异常记录
  • NLPIR智能语义技术让大数据挖掘更简单
  • ​人工智能书单(数学基础篇)
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (C语言)二分查找 超详细
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (九)c52学习之旅-定时器
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (一)基于IDEA的JAVA基础1
  • ***原理与防范
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • @我的前任是个极品 微博分析
  • [ 蓝桥杯Web真题 ]-布局切换
  • [2021 蓝帽杯] One Pointer PHP