使用篇-续
1、不同命名空间配置可以通过导出、导入的方式实现保存、复制;
2、不同命名空间配置可以通过克隆的方式实现复制;
3、可以在历史版本中针对具体配置项可以做回滚操作;
监听
Nacos Server 主动推送 客户端 发布后的配置内容;
可以在NacosServer 配置管理->监听查询 下 操作更新发布配置内容。
原生客户端监听代码如下
image.png image.png
应用到分布式系统
结合spring cloud alibaba
pom依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.10.BUILD-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.fc</groupId>
<artifactId>nacos-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>nacos-demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
</properties>
<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-config</artifactId>
</dependency>
<!-- 注册中心 暂时不用-->
<!--<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
bootstrap.yml配置
server:
port: 9000
spring:
application:
name: nacos-demo
cloud:
nacos:
config:
#nacos地址
server-addr: 127.0.0.1:8848
#命名空间
namespace: 096ad119-e2e0-4371-94c9-430b01102af2
#配置文件类型,目前只支持yaml,yml,properties,目前不需要了
file-extension: yaml
#默认提供者,目前不需要了
refresh-enabled: true
enabled: true
group: NACOS_DEMO
nacos配置-控制台
image.pngimage.png
测试代码
@RestController
@RefreshScope// 开启动态刷新
public class TestController {
private Logger logger = LoggerFactory.getLogger(TestController.class);
@Value("${my.name}")
private String name;
@Value("${my.age}")
private Integer age;
@Value("${abc}")
private String abc;
@RequestMapping("/test")
public String test() {
logger.info("-------------test---------------");
logger.info("name = {} ,age ={} , abc = {}", name, age, abc);
return "Hello ~ ";
}
}
image.png
image.png
不需要重启服务,修改配置信息
image.png
重新访问
image.png
多配置文件设置
image.pngbootstrap.yml 配置
server:
port: 9000
spring:
application:
name: nacos-demo
cloud:
nacos:
config:
#nacos地址
server-addr: 127.0.0.1:8848
#命名空间
namespace: 096ad119-e2e0-4371-94c9-430b01102af2
#配置文件类型,目前只支持yaml,yml,properties,目前不需要了
file-extension: yaml
#默认提供者,目前不需要了
refresh-enabled: true
enabled: true
group: NACOS_DEMO
# 默认服务名称
# prefix: nacos-demo
#配置方式已过期
# shared-dataids: shareconfig1.yml,shareconfig2.yml
#配置方式已过期
# refreshable-dataids: shareconfig1.yml,shareconfig2.yml
# 配置方式已经过期
# ext-config:
# - data-id: shareconfig3.yml
# group: SHARE3_GROUP
# refresh: true
# - data-id: shareconfig4.yml
# group: SHARE4_GROUP
# refresh: true
shared-configs:
- dataId: common.yaml
group: DEV_COMMON
refresh: true
测试代码
@Value("${common.key1}")
private String commonKey1;
@RequestMapping("/test")
public String test() {
logger.info("-------------test---------------");
logger.info("name = {} ,age ={} , abc = {} , commonKey1 = {}", name, age, abc, commonKey1);
return "Hello ~ ";
}
测试结果
image.pngimage.png
更改值,测试动态刷新
image.png
重新访问
image.png
网友评论