nacos注册中心/配置中心的使用
Nacos下载:
https://github.com/alibaba/nacos/releases
Nacos启动:
此处为了演示方便,下载的是 Windows版本 nacos-server-2.2.2.zip 。
进入 nacos-server-2.2.2\nacos\bin 文件夹,按shift和右键,选择"在此处打开PowerShell窗口",如果是旧版本的Windows,可以选择打开 cmd。
输入:
.\startup.cmd -m standalone
启动如下:
版本说明:
https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
Spring Boot 版本:2.6.13, 对应 Spring Cloud 版本: 2021.0.5, 对应Spring Cloud Alibaba 版本:2021.0.5.0
Spring Boot 版本:3.0,需要 jdk17。
创建SpringCloud项目
详情见:https://www.cnblogs.com/expiator/p/15844275.html
Maven依赖:
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.6.13</spring-boot.version>
<spring-cloud.version>2021.0.5</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${spring-cloud-alibaba.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${spring-cloud-alibaba.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
启动报错:
- SpringCloud 启动报错: No spring.config.import property has been defined
缺少以下依赖包:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
bootstrap.properties 文件:
nacos的配置文件,最好写在 bootstrap.properties 文件里面。优先级最高。
配置文件优先级(由高到低):
bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml
若application与bootstrap中有相同的内容,以bootstrap为主
# Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html
server.port=8083
spring.application.name=provider
spring.profiles.active=dev
# 设置配置中心服务端地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.prefix=provider
spring.cloud.nacos.config.file-extension=yaml
# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,请不要填写这个值,直接留空即可
spring.cloud.nacos.discovery.namespace=
# Nacos 服务发现与注册配置。
# 其中子属性 server-addr 指定 Nacos 服务器主机和端口
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
ProviderApplication启用类:
记得,不要遗漏类上面的注解。
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args);
}
}
控制层
@RestController
public class ProviderController {
/**
* 后面的 :abc 表示默认值为 abc。
*/
@Value("${config.name:abc}")
private String configName;
@GetMapping(value = "/provider/config")
public String getConfig() {
return configName;
}
}
nacos服务列表:
启动服务,在浏览器输入地址:http://127.0.0.1:8848/nacos
然后,打开Nacos服务列表:
可以看到,服务已经注册到Nacos上面了。
nacos配置列表:
启动服务,在浏览器输入地址:http://127.0.0.1:8848/nacos, 打开Nacos配置列表:
点击+号后,新建一个配置,如下:
nacos配置中心
-
命名空间:
主要是用于环境隔离。比如 dev环境一个命名空间,test环境一个命名空间。
默认的命名空间是 public。 -
Data ID:
Data ID的格式为:
${prefix}-${spring.profile.active}.${file-extension}
以上的 这几个配置,都是在 bootstrap.properties中配置过的。
spring.profiles.active=dev
spring.cloud.nacos.config.prefix=provider
spring.cloud.nacos.config.file-extension=yaml
拼起来Data ID就是 provider-dev.yaml。
服务启动之后,会去这个Data Id里面找相关的配置。
如果不清楚自己配置的 Data Id是什么,也可以搜索启动的日志,
搜索日志关键字:Nacos Config,可以看到类似内容:
refresh.NacosContextRefresher : [Nacos Config] Listening config: dataId=provider-dev.yaml, group=DEFAULT_GROUP
查看配置
启动服务之后,调用接口 localhost:8083/provider/config,可以看到,已经读取到了命名空间里面的 Data Id 的配置:
参考资料:
https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html
https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
https://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-05-13 SpringCloud Feign通过FallbackFactory显示异常信息
2019-05-13 使用IDEA查看变量调用链