通过登录NACOS管理后台,左侧菜单有4个大分类:配置管理,服务管理,命名空间,集群管理。我们可以将整个架构体系内的所有配置都集中在Nacos中存储。这样做的好处是分离的多环境配置,可以更灵活的管理权限,安全性更高。一般我们修改应用程序的配置文件后,需要重启应用才能生效,而nacos是可以再应用中直接刷新,不用重启。
命名空间Namespace
官方说明是:
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
没有明确指定spring.cloud.nacos.config.namespace
配置情况下,模式使用的是public。
上图中创建了两个命名空间,一个DEV,一个TEST.此时在配置列表和服务列表上面可以看到多了DEV和TEST两个标签项。
需要注意的是,我们在应用程序中配置
spring.cloud.nacos.config.namespace
是指定其命名空间ID,而非命名空间名称。该配置必须放在
bootstrap.properties 文件中
spring.cloud.nacos.config.namespace=39850848-bd53-47eb-8e4d-0a29de89abe6
本文用于测试,spring.cloud.nacos.config.namespace 的值是 TEST对应的 id。
创建配置
在配置列表菜单中,选择刚创建的TEST命名空间,在这个命名空间下创建新的配置。
说明:Data ID 是以 properties(默认的文件扩展名方式)为扩展名。Data ID 的值默认是对应
${spring.application.name}
.properties
Group 默认分组即可,如果是想细分维度的话,这里可以自定义。
配置格式:选择properties,这里对应的是上面Data ID 后缀名
配置内容:根据自己实际填写,这里测试填写一个http.url=https://www.baidu.com/
填写完成后,发布保存。
应用中使用nacos配置
在Spring Cloud Alibaba(一) 简单实现服务注册与发现 文中,我们创建了一个服务消费者的应用,在此基础上,我们进行改造。首先在pom文件中添加spring-cloud-starter-alibaba-nacos-config依赖。
完整的pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.floyd.nacos.consumer</groupId>
<artifactId>springcloud-nacos-consumer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloud-nacos-consumer</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
<spring-cloud-alibaba.version>2.1.0