当前位置:网站首页>nacos基础(6):nacos配置管理模型
nacos基础(6):nacos配置管理模型
2022-04-23 11:18:00 【逆水行舟没有退路】
文章目录
前言
nacos的配置管理模型。
第一节 配置管理模型
nacos配置管理模型,对于nacos配置管理,通过Namespace,group,Data Id能够定位到一个配置集。
配置集 Data ID
在系统中,一个配置文件通常就是一个配置集,一个配置集可以包含系统的各种配置信息。例如,一个配置集可能包含了数据源,线程池,日志级别等配置项。每个配置集都可以定义一个有意义的名称,就是配置集的ID(Data ID)
配置项
配置集中包含的一个个配置内容就是配置项。它代表一个具体的可配置的参数与其域值,通常以key=value的形式存在。例如常用配置的日志输出级别(logLevel=INFO|WARN|ERROR)就是一个配置项。如下可支持的配置信息的格式
配置分组 group
配置分组是对配置集进行分组,通过一个有意义的字符串来表示,不同的配置分组下可以有相同的配置集。当在nacos上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用DEFAULT_GROUP。配置分组的常见常见:可用于区分不同的项目或应用。
命名空间Namespace
命名空间可用于进行不同环境的配置隔离。例如可以隔离开发环境,测试环境和生产环境,因为它们的配置各不相同,或者隔离不同的用户,不同的开发人员使用同一个nacos管理各自的配置,可通过namespace隔离。不同的命名空间下,可以存在相同名称的配置分组或配置集。
实践
Namespace: 代表不同的环境,例如 开发,测试,生产。
Group:代表某项目,例如外卖项目,打车项目
DataId:每个项目下往往存在若干个工程,每个配置集代是一个工程的主配置文件。
第二节 命名空间管理
namespace隔离设计
namespace 的设计是nacos基于此做多环境以及多租户(多个用户共享使用nacos)数据(配置和服务)隔离的。
- 从一个租户的角度来看,如果多套不同的环境,那么这个时候可以根据指定的环境来创建不同的命名空间,以此来实现多环境的隔离。例如 :你可能有开发,测试和生产三套不同的环境,那么使用一套nacos集群可以分别一下三个不同的namespace。
命名空间管理和配置数据获取
如何创建命名空间
-
打开左侧命名空间,点击新建命名空间
此时进入配置列表就可以切换新建的命名空间。
-
此时在dev下新建数据集
-
编写代码
这里我们获取dev命名空间下的配置,也就需要传递namespace的id(从命名空间那里可以查看到namespace id),
如果不传namespace,默认的就是public,也就是系统自带的命名空间。
package com.it2;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;
import java.util.Properties;
public class NacosDemo01 {
public static void main(String[] args) throws NacosException {
String dataId="nacos-demo.yaml";
String group="DEFAULT_GROUP";
String serverAddr="127.0.0.1:8848";
Properties properties=new Properties();
properties.put("serverAddr",serverAddr);
//这是从非public的命名空间获取配置集,就需要命名空间的id
properties.put("namespace","d0f32411-9568-4cd3-a595-a1d98989bbeb");
ConfigService configService= NacosFactory.createConfigService(properties);
String config=configService.getConfig(dataId,group,3000);
System.out.println(config);
}
}
- 运行代码
版权声明
本文为[逆水行舟没有退路]所创,转载请带上原文链接,感谢
https://blog.csdn.net/u011628753/article/details/124357745
边栏推荐
- 闹钟场景识别
- Using El popconfirm and El backtop does not take effect
- mysql插入datetime类型字段不加单引号插入不成功
- Learning go language 0x01: start from the official website
- Upgrade the functions available for cpolar intranet penetration
- laravel-admin表单验证
- 26. Delete duplicates in ordered array
- 妊娠箱和分娩箱的区别
- Go interface usage
- 防止web项目中的SQL注入
猜你喜欢
C#的学习笔记【八】SQL【一】
Using Baidu PaddlePaddle EasyDL to accomplish specified target recognition
语雀文档编辑器将开源:始于但不止于Markdown
VM set up static virtual machine
C语言之结构体(进阶篇)
Typora operation skill description (I) md
Constraintlayout layout
Get things technology network optimization - CDN resource request Optimization Practice
Mysql8. 0 installation guide
Upgrade the functions available for cpolar intranet penetration
随机推荐
CUMCM 2021-b: preparation of C4 olefins by ethanol coupling (2)
Constraintlayout layout
Detailed explanation of how to smoothly go online after MySQL table splitting
vm设置静态虚拟机
Learn go language 0x05: the exercise code of map in go language journey
My creation anniversary
实践数据湖iceberg 第三十课 mysql->iceberg,不同客户端有时区问题
如何使用JDBC CallableStatement.wasNull()方法调用来查看最后一个OUT参数的值是否为 SQL NULL
Promise details
Detailed explanation of MySQL creation stored procedure and function
QT信号量 无法解析的错误的总结
26. 删除有序数组中的重复项
面向全球市场,PlatoFarm今日登录HUOBI等全球四大平台
Use of SVN:
Facing the global market, platefarm today logs in to four major global platforms such as Huobi
redis优化系列(二)Redis主从原理、主从常用配置
学习 Go 语言 0x07:《Go 语言之旅》中 Stringer 练习题代码
mysql插入datetime类型字段不加单引号插入不成功
升级cpolar内网穿透能获得的功能
QT 怎么把QWigdet变成QDialog