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 VersionSpring Cloud Alibaba VersionSpring Boot VersionNacos Version
Spring Cloud Hoxton.SR92.2.6.RELEASE2.3.2.RELEASE1.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界面,新建配置文件
在这里插入图片描述

标签
DataIdnacos-namespace-one-dev.yml
Groupnamespace-one
配置格式YAML

配置内容:

nacos: config: 项目:nacos-namespace-one,Namespace:dev

继续新建配置文件

标签
DataIdnacos-namespace-two-dev.yml
Groupnamespace-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界面,新建配置文件
在这里插入图片描述

标签
DataIdnacos-namespace-one-test.yml
Groupnamespace-one
配置格式YAML

配置内容:

nacos: config: 项目:nacos-namespace-one,Namespace:test

继续新建配置文件

标签
DataIdnacos-namespace-two-test.yml
Groupnamespace-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来管理不同的项目

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

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

相关文章

干货|Flutter 原理与闲鱼深度实践

王康&#xff08;正物&#xff09;—— Flutter 官方成员 阿里巴巴技术专家&#xff0c;之前主要负责 Flutter 在闲鱼中的混合开发体系&#xff0c;目前重点关注 Flutter 深入度以及生态相关的工作。本文将分享三方面内容&#xff0c; Flutter 的原理、 Flutter 在闲鱼中的应用…

云计算,巨头们的背水一战

作者 | 马超责编 | 伍杏玲头图 | CSDN 下载自视觉中国出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;最近国内各IT巨头技术布局都颇有看点&#xff0c;先是腾讯宣布将投入5000亿&#xff0c;用于新基建的进一步布局&#xff08;将重点投入云计算、人工智能、区块链…

基于函数计算的 Serverless AI 推理

前言概述 本文介绍了使用函数计算部署深度学习 AI 推理的最佳实践, 其中包括使用 FUN 工具一键部署安装第三方依赖、一键部署、本地调试以及压测评估&#xff0c; 全方位展现函数计算的开发敏捷特性、自动弹性伸缩能力、免运维和完善的监控设施。 1.1 DEMO 概述 通过上传一个…

《Flutter in action》开放下载!闲鱼Flutter企业级实践精选

复制链接到浏览器 https://yq.aliyun.com/download/3792?utm_contentg_1000081730 下载。 闲鱼是国内最早使用Flutter的团队&#xff0c;也是Flutter业务线渗入最深的团队之一。 现在承载亿级流量的闲鱼将多年最佳实践经验整理成册&#xff0c;《Flutter in action》 正式面世…

阿里HBase高可用8年抗战回忆录

前言 2011年毕玄和竹庄两位大神将HBase引入阿里技术体系&#xff0c;2014年接力棒转到东8区第一位HBase commiter天梧手中&#xff0c;多年来与淘宝、旺旺、菜鸟、支付宝、高德、大文娱、阿里妈妈等几乎全BU合作伙伴携手共进&#xff0c;支撑了双十一大屏、支付宝账单、支付宝…

nginx 1.9.9 Linux 环境安装

文章目录一、软件下载和安装Nginx相关依赖1. 安装Nginx相关依赖2. 下载Nginx二、源码安装Nginx2.1. 解压2.2. nginx默认配置2.3. 编译安装2.3. 查找安装路径2.4.启动nginx2.5. 查看是否启动成功一、软件下载和安装Nginx相关依赖 1. 安装Nginx相关依赖 yum -y install gcc zli…

Java面向对象部分小结

Java面向对象部分小结 第一天: 1. 了解面向对象和面向过程 2. 对象是什么&#xff0c;静态特性&#xff08;属性&#xff09;&#xff0c;动态特征&#xff08;方法&#xff09; 3. 类和对象的关系 类是抽象的&#xff0c;对象是具体的类是具有相同属性和行为&#xff08;…

音视频应用驶入快车道 开发者如何快速追赶这波技术红利?

受访人 | 融云CPO 任杰 作者 | June 图片来源 | 视觉中国 毋庸置疑&#xff0c;随着5G时代的到来&#xff0c;实时音视频技术将会上升到一个全新的高度。 5G时代发生巨变的远远不止网速&#xff0c;凭借5G网络的高带宽&#xff0c;低延迟和大并发性&#xff0c;音视频应用场…

Mysql 8.0 安装教程 Linux Centos7

文章目录一、软件下载上传1. 下载2. 上传二、软件安装配置2.1. 解压mysql2.2. 创建data文件夹 存储文件2.3. 创建用户组以及用户和密码2.4. 授权用户2.5. 切换到bin目录下2.6. 编辑my.cnf文件2.7. 添加mysqld服务到系统2.8. 授权以及添加服务2.9. 启动mysql2.10. 查看启动状态2…

重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

Kubernetes 项目作为容器编排领域的事实标准&#xff0c; 成功推动了诸如阿里云 Kubernetes &#xff08;ACK&#xff09;等云原生服务的迅速增长。但同时我们也关注到&#xff0c;Kubernetes 的核心 API 资源比如 Service、Deployment 等&#xff0c;实际上只是应用中的不同组…

今天的作业 --- 去重

使用Set的写法: public String myMethod1(String str){ //Set方法Set setnew HashSet();for (int i 0; i < str.length(); i) {set.add(str.charAt(i));}String s "";for (Object o :set) {so;}return s;}由于Set集合内不会存储重复的字符,所以…

2020 AI 产业图谱启动,勾勒中国 AI 技术与行业生态

《2020年国务院政府工作报告》提出&#xff0c;重点支持「两新一重」建设。其中「两新一重」中的第一个「新」&#xff0c;就是新基建&#xff0c;而人工智能是新基建的重要组成部分。新基建首次被纳入政府工作报告后&#xff0c;各大科技厂商纷纷押注&#xff0c;重金投向「新…

从零开始入门 K8s | Kubernetes 网络概念及策略控制

一、Kubernetes 基本网络模型 本文来介绍一下 Kubernetes 对网络模型的一些想法。大家知道 Kubernetes 对于网络具体实现方案&#xff0c;没有什么限制&#xff0c;也没有给出特别好的参考案例。Kubernetes 对一个容器网络是否合格做出了限制&#xff0c;也就是 Kubernetes 的…

SwitchHosts

SwitchHosts 是一个管理、切换多个 hosts 方案的工具。 它是一个免费开源软件。 下载地址 https://github.com/oldj/SwitchHosts/releases

开放计算架构:蚂蚁金服是如何用一套架构容纳所有计算的?

蚂蚁金服在过去十五年重塑支付改变生活&#xff0c;为全球超过十二亿人提供服务&#xff0c;这些背后离不开技术的支撑。在 2019 杭州云栖大会上&#xff0c;蚂蚁金服将十五年来的技术沉淀&#xff0c;以及面向未来的金融技术创新和参会者分享。我们将其中的优秀演讲整理成文并…

一个神秘URL酿大祸,差点让我背锅!

作者 | 编程技术宇宙责编 | Carol封图 | CSDN 付费下载自视觉中国神秘URL我叫小风&#xff0c;是Windows帝国一个普通的上班族。上一回说到因为一个跨域请求&#xff0c;我差点丢了饭碗&#xff0c;好在有惊无险&#xff0c;我的职场历险记还在继续。“叮叮叮叮~~~~”&#xff…

支付宝王益:40岁写30年代码是一种什么体验?

对于蚂蚁金服研究员王益而言&#xff0c;2019年是个颇有纪念意义的年份。今年他整40岁。从10岁开始&#xff0c;写代码整30年。这30年来&#xff0c;他当过“不务正业”的学生&#xff0c;创纪录地在大一就考下系统分析员&#xff0c;“单枪匹⻢”闯荡过从国内到硅谷的多家知名…

牛!2020年,这项技术将获得1,000,000,000元人民币注资!

在今年的特殊情况下&#xff0c;国外的AI明星公司轰然倒塌&#xff0c;一夜之间倒闭。又有某AI大厂一年亏了60亿……就像看破楼市一样&#xff0c;我们不由心想&#xff1a;“AI&#xff0c;会不会从头到尾就是一场泡沫&#xff1f;”但是&#xff0c;最近国家发的“定心丸”来…

基于阿里云的 Node.js 稳定性实践

前言 如果你看过 2018 Node.js 的用户报告&#xff0c;你会发现 Node.js 的使用有了进一步的增长&#xff0c;同时也出现了一些新的趋势。 Node.js 的开发者更多的开始使用容器并积极的拥抱 ServerlessNode.js 越来越多的开始服务于企业开发半数以上的 Node.js 应用都使用远端…

Knative 实战:基于阿里云 Kafka 实现消息推送

在 Knative 中已经提供了对 Kafka 事件源的支持&#xff0c;那么如何在阿里云上基于 Kafka 实现消息推送&#xff0c;本文给大家解锁这一新的姿势。 背景 消息队列 for Apache Kafka 是阿里云提供的分布式、高吞吐、可扩展的消息队列服务。消息队列 for Apache Kafka 广泛用于…