目录
默认配置中心
概述
Nacos 配置文件
构建SpringCloudAlibaba Nacos配置中心项目
pom.xml 依赖
启动类
测试类
分组配置中心
概述
Nacos 添加配置文件
配置文件
控制台输出
测试结果
总结
命名空间配置中心
概述
配置文件
测试结果
总结
多文件加载与共享配置
概述
配置中心添加两个配置文件
配置文件
控制台输出
测试结果
1. Spring Cloud Alibaba 微服务介绍(一)
2. Spring Cloud Alibaba 之Nacos 安装(二)
3. Spring Cloud Alibaba 微服务组件 Nacos 注册中心(三)
4. Spring Cloud Alibaba 微服务负载均衡 Ribbon(四)
5. Spring Cloud Alibaba 微服务整合 OpenFeign(五)
6. Spring Cloud Alibaba 微服务组件 Nacos 配置中心(六)
7. Spring Cloud Alibaba 微服务组件 Sentinel 服务保护(七)
8. Spring Cloud Alibaba 分布式事务概念(八)
9. Spring Cloud Alibaba 微服务组件 Seata 分布式事务(九)
10. Spring Cloud Alibaba 服务网关 Gateway(十)
11. Spring Cloud Alibaba 微服务组件 Skywalking 分布式任务链(十一)
语雀文档:Spring Cloud Aibaba 学习 · 语雀
下面我们通过一个简单的例子来介绍如何使用 Nacos 来创建配置内容以及如何在 Spring Cloud 应用中加载 Nacos 的配置信息。
第一步:进入Nacos的控制页面,在配置列表功能页面中,单击右上角的+按钮,进入新建配置页面,如图填写配置信息:
详解说明
第一步:创建一个Spring Cloud应用,可以命名为:order-config。
第二步:编辑 pom.xml,加入必要的依赖配置
项目搭建采用的版本是
注意:
org.springframework.boot
spring-boot-starter-parent
2.3.6.RELEASE
1.8
2.2.5.RELEASE
2.3.6.RELEASE
Hoxton.SR8
org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
1.16.14
provided
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
org.springframework.cloud
spring-cloud-dependencies
${spring.cloud.version}
pom
import
com.alibaba.cloud
spring-cloud-alibaba-dependencies
${spring.cloud.alibaba.version}
pom
import
配置文件
说明:配置文件加载顺序,SpringBoot中会先加载 bootstrap.yml,后加载 application.yml
注意:如果是yml配置文件,必须是 bootstrap.yml 而不是 application.yml
详解说明:
客户端配置:在bootstrap.yml文件中 spring.cloud.nacos.config.file-extension 属性声明从配置中心中读取的配置文件格式
该配置的默认是为properties,即默认是读取properties格式的配置文件。当客户端没有配置该属性,并且在nacos server添加的是yml格式的配置文件,则给客户端会读取不到配置文件,导致启动失败。
server:
## 启动端口
port: 8130
spring:
application:
## 注册服务名
name: nacos-order
cloud:
nacos:
## 注册中心地址
discovery:
server-addr: 127.0.0.1:8848
## 配置中心地址
config:
server-addr: 127.0.0.1:8848
## 指定读取配置文件的后缀
file-extension: yaml
## 分组
group: DEFAULT_GROUP
@SpringBootApplication
@EnableDiscoveryClient
public class OrderConfigApp {
public static void main(String[] args) {
SpringApplication.run(OrderConfigApp.class,args);
}
}
其中通过 @Value 注解,注入了key为order.title的配置(默认为空字符串),这个配置会通过 /getOrder 接口返回,后续我们会通过这个接口来验证Nacos中配置的加载。另外,这里还有一个比较重要的注解@RefreshScope,主要用来让这个类下的配置内容支持动态刷新,也就是当我们的应用启动之后,修改了Nacos中的配置内容之后,这里也会马上生效。
/**
* @author: LiPing.Zou
* @create: 2020-05-18 15:27
**/
@RestController
@RefreshScope
public class OrderController {
@Value("${order.title}")
private String orderTitle;
@GetMapping("getOrder")
public String getOrder(){
return "order config" +orderTitle;
}
}
控制台输出日志
浏览器访问,测试成功!
当我们修改配置中心内容,会触发 RefreshEventListener 事件
默认分组为 DEFAULT_GROUP,GROUP 可以将不同的微服务进行分组划分。
server:
## 启动端口
port: 8160
spring:
application:
## 注册服务名
name: group-order-config
cloud:
nacos:
## 注册中心地址
discovery:
server-addr: 47.103.20.21:8848
## 配置中心地址
config:
server-addr: 47.103.20.21:8848
## 指定读取配置文件的后缀
file-extension: yaml
## 分组
group: DEV_GROUP
CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='namespace-order-config-dev.yaml'}, NacosPropertySource {name='namespace-order-config.yaml'}]}
默认为 public,其作用可以用来实现环境隔离作用,比如我们的开发环境、测试环境、生产环境。Nacos 添加命名空间
添加了 namespace: 9e7bf496-2518-415c-9dcf-d2d47453457e
server:
## 启动端口
port: 8180
spring:
application:
## 注册服务名
name: namespace-order-config
cloud:
nacos:
## 注册中心地址
discovery:
server-addr: 127.0.0.1:8848
## 配置中心地址
config:
server-addr: 127.0.0.1:8848
## 指定读取配置文件的后缀
file-extension: yaml
## 命名空间
namespace: 9e7bf496-2518-415c-9dcf-d2d47453457e
在新建 mall-test 命名空间新增配置
控制台输出
CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='namespace-order-config-dev.yaml'}, NacosPropertySource {name='namespace-order-config.yaml'}]}
有时候我们会对应用的配置根据具体作用做一些拆分,存储在不同的配置文件中,除了归类不同的配置之外,也可以便于共享配置给不同的应用。对于这样的需求,Nacos也可以很好的支持,下面就来具体介绍一下,当使用Nacos时,我们如何加载多个配置,以及如何共享配置。
group-share-config 服务同时加载两个配置文件 group-share-config.yaml, group-share-config2.yaml
server:
## 启动端口
port: 8160
spring:
application:
## 注册服务名
name: group-share-config
cloud:
nacos:
## 注册中心地址
discovery:
server-addr: 127.0.0.1:8848
## 配置中心地址
config:
server-addr: 127.0.0.1:8848
# ## 指定读取配置文件的后缀
# file-extension: yaml
# refreshable-dataids: group-share-config.yaml,group-share-config2.yaml
# shared-dataids: group-share-config.yaml,group-share-config2.yaml
ext-config:
- data-id: group-share-config.yaml
group: DEFAULT_GROUP
refresh: true
fileExtension: yaml
- data-id: group-share-config2.yaml
group: DEFAULT_GROUP
refresh: true
fileExtension: yaml
项目地址https://gitee.com/gaibianzlp/springcould-alibaba-example.githttps://gitee.com/gaibianzlp/springcould-alibaba-example.githttps://gitee.com/gaibianzlp/springcould-alibaba-example.git点关注不迷路,觉得对你有帮助请给一个赞或者长按一键三连,谢谢!