0
点赞
收藏
分享

微信扫一扫

Nacos非常入门的demo

码云代码地址

​​https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_Nacos/nacos-config-demo​​ ​

入门代码编写

<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.2</version>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.1.1</version>
</dependency>

properties配置

nacos.config.server-addr=zjj101:8848

Java代码

import com.alibaba.nacos.api.config.annotation.NacosValue;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* 读取nacos配置文件
* autoRefreshed = true 是自动刷新的意思
*/
@NacosPropertySource(dataId = "example",groupId = "DEFAULT_GROUP",autoRefreshed = true)
@RestController
public class NacosConfigController {

/**
* 当前的info这个属性,会去nacos-server找到对应的info这个属性
* 如果Nacos出现异常了,无法连到远端的Nacos的配置信息,那么为了防止空指针异常
* 就会使用hello Nacos 这个默认值 ,这是为了高可用性
*/
//localhost:8080/get
@NacosValue(value = "${info:hello Nacos}",autoRefreshed = true)
private String info;

@GetMapping("/get")
public String get(){
return info;
}



}

启动项目之后postman 访问 localhost:8080/get, 结果是 hello Nacos .

原因是咱们并没有配置nacos值, @NacosValue(value = “${info:hello Nacos}”,autoRefreshed = true) 中的value值 ,冒号后面的意思是 如果在nacos-server没有取到 info对应的值,默认就是hello Nacos, 这样做的目的是 如果Nacos出现异常了,无法连到远端的Nacos的配置信息,那么为了防止空指针异常, 就会使用hello Nacos 这个默认值 ,这是为了高可用性.
Nacos非常入门的demo_spring boot

nacos-server配置

右上角 点击 加号 添加一条配置信息

Nacos非常入门的demo_spring_02

Nacos非常入门的demo_配置信息_03
配置内容: info: hello,你好

点击发布

再次postman访问,发现能获取到你刚配置的值了.
Nacos非常入门的demo_配置信息_04

你修改完了新的值之后,再次访问接口也能给你返回新的值,原因是 @NacosValue(value = “${info:hello Nacos}”,autoRefreshed = true)中 autoRefreshed设置了true ,自动刷新了

删除数据之后

你再次访问localhost:8080/get 发现还能获取到删除之前的值,原因是:删除nacos上的配置后,客户端其实读取到的是客户端内存中的配置,nacos将删除的kv变更没有同步到到客户端。所以感官上看到客户端依旧读的是“老的配置”;

如果你想解决这个问题的话,就是想nacos-server删除掉值之后, Java代码能感知到nacos-server删除了这个值了,这个值已经没了,那么就看这个帖子,自行解决 : ​​https://www.yuque.com/docs/share/6c693656-a796-465b-8fb0-77c1316a21d0??​​​ 《Nacos删除配置后,sprintboot还是读到删除之前的值》


举报

相关推荐

0 条评论