Nacos配置中心规范
文章目录
- 一、版本选取和概念理解
- 1. 版本选择
- 2.Namespace
- 3. 如何进行配置和服务的管理、隔离(Group)
- 二、方案选取
- 1. 命名空间创建
- 2. Namespace实施方案
- 三、nacos配置实战
- 3.1. dev环境配置创建
- 3.2. test环境配置创建
- 四、代码coding实战
- 4.1. 创建2项目
- 4.2. 引入依赖
- 4.3. 创建测试类
- 4.4. 创建dev环境配置文件
- 4.5. 分别启动服务
- 4.6. 测试验证
一、版本选取和概念理解
1. 版本选择
毕业版本依赖关系(推荐使用)
Spring Cloud Version | Spring Cloud Alibaba Version | Spring Boot Version | Nacos Version |
---|---|---|---|
Spring Cloud Hoxton.SR9 | 2.2.6.RELEASE | 2.3.2.RELEASE | 1.4.2 |
2.Namespace
Nacos引入了命名空间(Namespace)的概念来进行多环境配置和服务的管理及隔离
Namespace也是官方推荐的多环境支持方案。
3. 如何进行配置和服务的管理、隔离(Group)
这里的group就是Namespace的概念,将服务和配置纳入相同的Namespace进行管理
不同Namespace下的服务和配置之间就隔离开来。
二、方案选取
1. 命名空间创建
NamespaceId值是在配置文件配置时必须要填入的配置项,所以需要我们先创建Namespace和Id,步骤如下:
nacos 的控制台左边功能栏看到有一个命名空间的功能,点击就可以看到新建命名空间 的按钮。
新建成功后,可以在命名空间列表中查看到你所创建的Namespace和他生成的ID值。
2. Namespace实施方案
面向一个租户
从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。
例如,你可能有dev,test和prod三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:
通过定义不同的环境,不同环境的项目在不同的Namespace下进行管理,不同环境之间通过Namespace进行隔离。
当多个项目同时使用该Nacos集群时,还可以通过Group进行Namespace内的细化分组。
这里以Namespace:dev为例,在Namespace中通过不同Group进行同一环境中不同项目的再分类。
三、nacos配置实战
3.1. dev环境配置创建
Namespace下新建配置文件
这里假设有 nacos-namespace-one 和 nacos-namespace-two 两个项目,等会会创建。
启动Nacos-Server,进入Nacos控制台,切换到Namespace:dev界面,新建配置文件
标签 | 值 |
---|---|
DataId | nacos-namespace-one-dev.yml |
Group | namespace-one |
配置格式 | YAML |
配置内容:
nacos: config: 项目:nacos-namespace-one,Namespace:dev
继续新建配置文件
标签 | 值 |
---|---|
DataId | nacos-namespace-two-dev.yml |
Group | namespace-two |
配置格式 | YAML |
配置内容:
nacos: config: 项目:nacos-namespace-two,Namespace:dev
注意检查DataId是否正确、group、配置内容与环境是否匹配
3.2. test环境配置创建
Namespace下新建配置文件
这里假设有 nacos-namespace-one 和 nacos-namespace-two 两个项目,等会会创建。
启动Nacos-Server,进入Nacos控制台,切换到Namespace:test界面,新建配置文件
标签 | 值 |
---|---|
DataId | nacos-namespace-one-test.yml |
Group | namespace-one |
配置格式 | YAML |
配置内容:
nacos: config: 项目:nacos-namespace-one,Namespace:test
继续新建配置文件
标签 | 值 |
---|---|
DataId | nacos-namespace-two-test.yml |
Group | namespace-two |
配置格式 | YAML |
配置内容:
nacos: config: 项目:nacos-namespace-two,Namespace:test
四、代码coding实战
4.1. 创建2项目
nacos-namespace-one和nacos-namespace-two
4.2. 引入依赖
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--服务注册发现--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency></dependencies><dependencyManagement><dependencies><!--spring-cloud-alibaba 版本控制--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.6.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
4.3. 创建测试类
@RestController
@RefreshScope
public class NaocsController {@Value("${nacos.config}")private String nacosConfig;@GetMapping("/nacosConfig")public String nacosConfig(){return nacosConfig;}
}
4.4. 创建dev环境配置文件
配置说明:nacos-namespace-one项目和nacos-namespace-two项目默认配置dev环境的 bootstrap.yml,当项目启动成功后,在将test环境配置文件 bootstrap.yml内容覆盖掉dev环境的配置,因为dev环境和test环境只是环境配置不一样,但是,他们同属于一个项目。等会会启动4个服务
分别是nacos-namespace-one项目9911、nacos-namespace-one项目的9912、nacos-namespace-two项目的9921、nacos-namespace-two项目的9922
nacos-namespace-one项目创建dev环境配置文件 bootstrap.yml
dev
server:port: 9911
spring:application:name: nacos-namespace-oneprofiles:active: devcloud:nacos:discovery:server-addr: 127.0.0.1:8848namespace: bb5689cc-7613-4e61-a05f-a750371fe46fgroup: namespace-oneconfig:server-addr: 127.0.0.1:8848prefix: ${spring.application.name}file-extension: ymlnamespace: bb5689cc-7613-4e61-a05f-a750371fe46fgroup: namespace-one
nacos-namespace-one项目创建test环境配置文件 bootstrap.yml
test
server:port: 9912
spring:application:name: nacos-namespace-oneprofiles:active: testcloud:nacos:discovery:server-addr: 127.0.0.1:8848namespace: 2b3082ac-ecbe-4ad8-b122-d5f92fa6e1ebgroup: namespace-oneconfig:server-addr: 127.0.0.1:8848prefix: ${spring.application.name}file-extension: ymlnamespace: 2b3082ac-ecbe-4ad8-b122-d5f92fa6e1ebgroup: namespace-one
nacos-namespace-two项目创建dev环境配置文件 bootstrap.yml
dev
server:port: 9921
spring:application:name: nacos-namespace-twoprofiles:active: devcloud:nacos:discovery:server-addr: 127.0.0.1:8848namespace: bb5689cc-7613-4e61-a05f-a750371fe46fgroup: namespace-twoconfig:server-addr: 127.0.0.1:8848prefix: ${spring.application.name}file-extension: ymlnamespace: bb5689cc-7613-4e61-a05f-a750371fe46fgroup: namespace-two
nacos-namespace-two项目创建test环境配置文件 bootstrap.yml
test
server:port: 9922
spring:application:name: nacos-namespace-twoprofiles:active: testcloud:nacos:discovery:server-addr: 127.0.0.1:8848namespace: 2b3082ac-ecbe-4ad8-b122-d5f92fa6e1ebgroup: namespace-twoconfig:server-addr: 127.0.0.1:8848prefix: ${spring.application.name}file-extension: ymlnamespace: 2b3082ac-ecbe-4ad8-b122-d5f92fa6e1ebgroup: namespace-two
4.5. 分别启动服务
启动4个服务
分别是nacos-namespace-one项目9911、nacos-namespace-one项目的9912、nacos-namespace-two项目的9921、nacos-namespace-two项目的9922
同一项目启动不同端口的服务技巧
需要勾选这个选项
4.6. 测试验证
访问接口来获取配置信息,验证是否可以读取相应环境配置
http://localhost:9911/nacosConfig
http://localhost:9912/nacosConfighttp://localhost:9921/nacosConfig
http://localhost:9922/nacosConfig
总结:通过Namespace来隔离不同的环境(dev\test),在具体的环境Namespace中通过Group来管理不同的项目
Nacos配置中心规范相关推荐
- 【第四阶段 day24】Nacos配置中心
文章目录 1.配置中心 1.1 概述 * 1.2 面试题 2.Nacos配置入门案例 2.1 创建ProviderLogController对象 2.2 在已有的sca-provider项目中添加配置 ...
- 阿里面试这样问:Nacos配置中心交互模型是 push 还是 pull ?(原理+源码分析)...
本文来源:公众号「 程序员内点事」 对于Nacos大家应该都不太陌生,出身阿里名声在外,能做动态服务发现.配置管理,非常好用的一个工具.然而这样的技术用的人越多面试被问的概率也就越大,如果只停留在使用 ...
- Nacos配置中心用法详细介绍
上篇文章介绍了 Nacos 作为注册中心的用法,除此之外,Nacos 还能作为配置中心使用,那这篇文章就介绍下 Nacos 作为配置中心的基本用法,首先我们先了解下为什么需要使用配置中心. 一.为什么 ...
- Nacos配置中心介绍
配置中心介绍 1.Spring Cloud Config Spring Cloud Config 为分布式系统的外部配置提供了服务端和客户端的支持方案.在配置的服务端您可以在所有环境中为应用程序管理外 ...
- Linux启动nacos成功日志_微服务系列之Nacos配置中心
Nacos 介绍 Nacos 是 Alibaba 公司推出的开源工具,用于实现分布式系统的服务发现与配置管理.英文全称 Dynamic Naming and Configuration Service ...
- easyconnect获取服务端配置信息失败_图文解析 Nacos 配置中心的实现
本文不会贴太多源码,基本靠图片和文字叙述 全文共 2582 字,预计阅读时间 12 分钟 什么是 Nacos 配置中心的架构 Nacos 使用示例 官方代码示例 Properties 解读 配置项的层 ...
- Alibaba Nacos配置中心功能介绍与不同命名空间、分组等配置
概述:我们前面介绍过 Nacos 可以为我们提供服务注册与发现,以及实现了配置中心功能,本章将介绍nacos 配置中心的使用方法,以及其不同场景下的配置方式.在前面我们介绍过nacos的领域模型(下图 ...
- 基于Nacos配置中心实现Spring Cloud Gateway的动态路由管理
前面我们了解过了Sentinel 网关流量控制之Spring Cloud Gateway实战,今天带给大家是基于Nacos配置中心实现Spring Cloud Gateway的动态路由管理. 1.为什 ...
- nacos配置中心[NACOS HTTP-GET] The maximum number of tolerable server reconnection errors has been reache
nacos使用配置中心,启动项目控制台报错: [NACOS HTTP-GET] The maximum number of tolerable server reconnection errors h ...
最新文章
- Application provided invalid, non monotonically increasing dts to muxer in stream 0: -92233720368547
- TK:绘制BoundaryEdges边界边用法实战
- 单片机检测stc没反应_我为什么不用STC单片机
- 技术做不下去就转管理?没那么容易
- 数据结构6——回文树
- matlab 多速率,多速率信号处理系统设计与实现.PDF
- JDK Windows安装
- 深入浅出python系列(二):运算符
- 深入学习理解UNIX网络编程
- pearson特征选择matlab,常用的特征选择方法之 Pearson 相关系数
- 利用Gecco爬取(蚂蚁短租网)列表页数据
- 滤波器频率响应 matlab,滤波器频率响应与实际滤波情况不符合
- 人像姿势,从细节做起!
- Windows7 开机自启脚本
- 电子招投标技术的五大好处
- python 入参格式_Python发送post请求的三种入参-文件、base64、普通入参
- python最强web框架fastapi,比肩go,nodejs
- Spring源码理解
- 油气计量比较好的软件_您准备好使用计量互联网了吗?
- TSINGSEE青犀视频再度荣获腾讯云+社区2022年度优秀作者!
热门文章
- 每天中一次500万彩票,谷歌CEO 2019薪酬曝光,总计2.81亿美元
- 破解YouTube、Facebook推荐系统背后的那些算法
- 8万级自动挡智能SUV,舒适好开是亮点,众泰T600Coupe要逆天?
- nginx怎么升级php的版本号,nginx 升级指南,最详细的nginx升级步骤
- 深信服 linux软件开发面试题整理
- hive的一些常见内置函数
- try代码块中出现异常后try内程序会继续执行还是直接抛出异常?
- 系统调用和库函数的区别
- 工业视觉智能实战经验之IVI算法框架2.0
- Flagger on ASM·基于Mixerless Telemetry实现渐进式灰度发布系列 1 遥测数据