Nacos简介
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
安装
下载地址:https://github.com/alibaba/nacos/releases
下载完成并解压后 执行启动命令
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
Windows
启动命令(standalone代表着单机模式运行,非集群模式):
startup.cmd -m standalone
Nacos管理界面:http://127.0.0.1:8848/nacos/index.html
用户名:nacos
密码:nacos
服务发现
依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置
bootstrap.yml 或 application.yml
添加Nacos服务发现配置
server:
port: 5000
spring:
profiles:
active: dev
application:
name: user-server
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
启动类添加注解:@EnableDiscoveryClient
@SpringBootApplication
@EnableDiscoveryClient
public class UserServerApplication {
public static void main(String[] args) {
SpringApplication.run(UserServerApplication.class, args);
}
}
服务管理
启动项目,进入Nacos管理后台,点击 服务管理-服务列表
配置中心
依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
配置
bootstrap.yml 或 application.yml
添加Nacos配置
server:
port: 5000
spring:
profiles:
active: dev
application:
name: user-server
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
file-extension: yml
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
配置文件完整格式(dataId):
${prefix}-${spring.profiles.active}.${file-extension}
- prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
- spring.profiles.active 即为当前环境对应的 profile,不配置时将会忽略。
- file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
- shared-configs 配置指定的文件为共享配置。将一些配置信息作为全局配置,配置到一个配置文件里,然后在 shared-configs 里面指定这个文件,它是一个数组,可以使用 '-' 指定多个文件。
如按上面配置,则配置文件全名为:user-server-dev.yml
共享配置全名为:application-dev.yml
进入Nacos管理后台,点击 配置管理-配置列表 然后点击 + 号,新增两个配置文件
application-dev.yml
user-server-dev.yml
测试
动态配置注入
添加 @RefreshScope
注解可以使配置更改时刷新代码里的配置
@Getter
@Configuration
@RefreshScope
public class SysConfig {
@Value("${xe.version}")
private String version;
}
添加查看当前版本号接口
@RestController
@RequestMapping("/sys")
public class SysController {
@Resource
private SysConfig sysConfig;
@GetMapping("/version")
public String getVersion() {
return "当前版本:" + sysConfig.getVersion();
}
}
调用接口测试
进入Nacos管理后台,修改 user-server-dev.yml
里的配置,将版本改为 1.0.1
xe:
version: 1.0.1
修改保存后,重新调用接口,发现版本已经自动更新了