nacos是阿里巴巴开源的一个用于服务发现、服务配置等功能的开源项目。
我这里是安装在Linux系统上、在官网nacos-GitHub下载网址去找相关版本进行下载的(如图所示)

下载完成之后,使用命令解压(其中$version是自己下载的版本)
tar -zxvf nacos-server-$version.tar.gz
解压完成后进入bin目录中,使用启动命令(standalone表示单机模式非集群)
bash startup.sh -m standalone
启动之后可以通过 ip:8848/nacos/index.html 网页查看是否启动成功。
ps: 启动前要确保系统中安装了jdk以及maven

下面这两个依赖,config是用来服务配置,discovery是用来服务发现的,这里这两个版本对应springboot的版本是2.2.5.RELEASE。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
在启动类上添加@EnableDiscoveryClient,这样服务就可以被nacos发现并注册进去。
server.port=8080
spring.application.name=service-consumer
spring.cloud.nacos.config.server-addr=xx.xx.xx.xx:8848
spring.cloud.nacos.discovery.server-addr=xx.xx.xx.xx:8848
启动该服务,在nacos网页(上面有提到)中就可以看到该服务注册进去了。
依赖和配置文件同上面的。
1.在代码中,通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新:
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@RequestMapping("/get")
public boolean get() {
return useLocalCache;
}
}
2.服务配置可以通过代码发布
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=useLocalCache=true"
也可以在该网页上进行,这样在修改一个配置项的时候就可以动态进行而不是重启服务,修改完成之后刷新网页就可以发现其改变了。

注意,其中的dataId需要和代码中的一致
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
${prefix}.${file-extension}