重要、重要、重要
官网资料:https://nacos.io/zh-cn/docs/what-is-nacos.html
NacosConfigServer端
前面一篇文章意见说了怎么部署一个NacosConfigServer端:https://blog.csdn.net/qq_27062249/article/details/107922138
Data ID
nacos官方文档解释dataId的构成:${prefix}-${spring.profiles.active}.${file-extension},每个字段解释如下
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置spring.profiles.active
即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当spring.profiles.active
为空时,对应的连接符-
也将不存在,dataId 的拼接格式变成${prefix}.${file-extension}
file-exetension
为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型。
根据上面的解释得到我们服务在Nacos上的dataId为:cloud-alibaba-payment-service-dev.yaml
Group
这里先用系统提供的默认的,默认值为DEFAULT_GROUP
namespace
这里先用系统默认的,默认值为Public
NacosConfigClient端
pom依赖
<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>
bootstrap.yml
server:
port: 10002 #具体的服务端口不一样
spring:
application:
name: cloud-alibaba-payment-service #具体的服务名称不一样
cloud:
nacos:
#nacos注册中心地址
discovery:
server-addr: localhost:8848
#nacos注册配置中心地址
config:
server-addr: localhost:8848
#指定配置文件类型
file-extension: yaml
application.yml
#指定配置文件
spring:
profiles:
active: dev
NacosConfigClient端获取配置信息和支持动态刷新(@RefreshScope)
获取config.info
@RestController
@RefreshScope
public class Nacos10002PaymentController {
@Value("${server.port}")
private String serverPort;
@Value("${config.info}")
private String configInfo;
@GetMapping("/nacos/payment/{id}")
public String getPayment(@PathVariable("id") Integer id){
return "Nacos Client !! servicer.port:"+serverPort+",id:"+id;
}
@GetMapping("/nacos/payment/config")
public String getConfigInfo(){
return configInfo+","+serverPort;
}
}
其他
1.参考代码:https://github.com/TianLuhua/springCloud2020.git
2. Nacos注册中心:需要自己下载、部署
3. 服务调用:cloudalibaba-consumer-order-11001
4. 服务提供:cloudalibaba-provider-payment-10001和cloudalibaba-provider-payment-10002
5. Nacos Open API更新配置信息。例如,将group为DEFAULT_GROUP里面的dataId为example.properties中的configInfo的值修改成v1.1:curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=configInfo=v1.1"