前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud Alibaba(四) - Nacos 配置中心

SpringCloud Alibaba(四) - Nacos 配置中心

作者头像
化羽羽
发布2022-12-03 12:42:45
3440
发布2022-12-03 12:42:45
举报
文章被收录于专栏:化羽学Java

1、环境搭建

1.1 依赖

代码语言:javascript
复制
<!--  nacos注册中心 注解 @EnableDiscoveryClient    -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

<!--  nacos配置中心      -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

1.2 bootstrap.properties 配置

代码语言:javascript
复制
# 端口
server.port=9607
# 服务名
spring.application.name=kgcmall96-nacos-config
# nacos 配置中心 的地址
spring.cloud.nacos.server-addr=127.0.0.1:8848
# 指定nacos配置中心支持的配置文件后缀,注意:nacso上增加的配置文件后缀要跟此处一致,默认值properties
spring.cloud.nacos.config.file-extension=yml

1.3 请求

代码语言:javascript
复制
/**
 * Created On : 28/11/2022.
 * <p>
 * Author : huayu
 * <p>
 * Description: nacos配置中心测试入口
 */
@RestController
public class KgcMallNacosConfigController {

    //单个读取远程配置中心的公共配置参数
    @Value("${kh96.nacos.config:kh96-default}")
    private String kh96NacosConfig;

    /**
     * @param : []
     * @return : java.lang.String
     * @author : huayu
     * @date : 28/11/2022
     * @description : 读取远程nacos配置中心添加的统一自定义配置,返回
     */
    @GetMapping("/testNacosConfig")
    public String testNacosConfig() {
        return kh96NacosConfig;
    }

}

1.4 添加远程配置文件

1.4.1 添加
1.4.2 配置信息
1.4.3 添加成功

1.5 测试

1.6 修改配置信息

1.7 再次 测试

1.8 重启项目测试

2、配置信息实时刷新

每次修改配置文件都需要重启项目,十分麻烦,需要设置实时刷新;

2.1 添加注解

代码语言:javascript
复制
@RestController
@RefreshScope  //nacos配置动态刷新注解
public class KgcMallNacosConfigController {
    ......
}

2.2 测试

3、批量读取配置信息

3.1 配置类

代码语言:javascript
复制
/**
 * Created On : 28/11/2022.
 * <p>
 * Author : huayu
 * <p>
 * Description: KgcMallNacosConfig
 */
@Configuration
@RefreshScope
@ConfigurationProperties(prefix = "kh96.nacos")
@Data
public class KgcMallNacosConfig {

    /*
        测试 批量读取 配置信息
     */
    private String config;

}

3.2 请求

代码语言:javascript
复制
/**
 * Created On : 28/11/2022.
 * <p>
 * Author : huayu
 * <p>
 * Description: nacos配置中心测试入口
 */
@RestController
public class KgcMallNacosConfigController {

    @Autowired
    private KgcMallNacosConfig kgcMallNacosConfig;

    /**
     * @param : []
     * @return : java.lang.String
     * @author : huayu
     * @date : 28/11/2022
     * @description : 读取远程nacos配置中心添加的统一自定义配置,返回
     */
    @GetMapping("/testNacosConfig")
    public String testNacosConfig() {
        //测试 批量读取
        return kgcMallNacosConfig.getConfig();
    }

}

3.3 测试

4、读取配置文件的组成

prefix-active-extension

prefix:前缀,默认为服务名

active:激活环境

extension:文件后缀(propertion或者yml),需要跟配置中心一致

代码语言:javascript
复制
${spring.cloud.nacos.config.prefix}.${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

4.1 active指定配置环境

代码语言:javascript
复制
# 指定nacos配置中心支持的配置文件后缀,注意:nacso上增加的配置文件后缀要跟此处一致,默认值properties
spring.cloud.nacos.config.file-extension=yml
# 指定环境
# 配置文件前缀(默认以 服务名为前缀)
spring.cloud.nacos.config.prefix=config
## 指定激活环境
spring.profiles.active=test

# 最终拼接出来的就是 config-test-yml

4.2 添加配置文件

4.3 测试

5、命名空间 和 分组

5.1 添加命名空间

5.2 指定命名空间个分组

代码语言:javascript
复制
# 指定nacso配置中心的名称空间,配置的是对应名称空间的id值,不是名称
# 官方建议:namespace名称空间,作为环境区分,不同环境,使用不同的名称空间
spring.cloud.nacos.config.namespace=0e35ec99-dfac-45eb-84bb-e9d8a35f726e
# 指定名称空间下的分组,一般都是用于区分相同环境加的不同应用项目组,如果不配合配置,默认使用的是当前名称空间下的默认分组DEFAULT_GROUP,也支持自定义分组
spring.cloud.nacos.config.group=KH96_GROUP
5.2.1 添加配置

6、配置文件级别

6.1 配置文件级别

主配置 > 扩展配置 > 共享配置

相同类型配置下,下标越大优先级越高;

6.2 共享配置

6.2.1 配置信息
代码语言:javascript
复制
# nacos 的共享配置,此配置项是一个数组,数组的下标越大,优先级越高,同等的共享配置,高优先级自动覆盖低优先级
# 提醒:nacos所有的配置中,主配置存在的情况下,具有最高优先级,同等配置不会被共分享配置覆盖(所以先删除主配置)
spring.cloud.nacos.config.shared-configs[0].data-id=kgcmall96-shared-config.yml
spring.cloud.nacos.config.shared-configs[0].group=KH96_GROUP
spring.cloud.nacos.config.shared-configs[0].refresh=true
6.2.2 添加配置文件
6.2.3 测试

需要先删除主配置,因为它优先级最高;

6.2.4 在配置一个共享配置,下标1
代码语言:javascript
复制
# 下标1覆盖下标0的配置
spring.cloud.nacos.config.shared-configs[1].data-id=kgcmall96-priority-config.yml
spring.cloud.nacos.config.shared-configs[1].group=KH96_GROUP
spring.cloud.nacos.config.shared-configs[1].refresh=true
6.2.5 添加配置文件
6.2.6 测试

6.3 扩展配置

6.3.1 配置信息
代码语言:javascript
复制
## nacos扩展配置,此配置项是一个数组,数组的下标越大,优先级越高,同等的共享配置,高优先级自动覆盖低优先级
## 扩展配置的优先级低于主配置,高于共享配置,如果某种场景下需要单独覆盖共享配置,就可以使用扩展配置,比如某个oracle,其他都意思mysql
spring.cloud.nacos.config.extension-configs[0].data-id=kgcmall96-extend-config.yml
spring.cloud.nacos.config.extension-configs[0].group=KH96_GROUP
spring.cloud.nacos.config.extension-configs[0].refresh=true
6.3.2 添加配置文件
6.3.3 测试
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、环境搭建
    • 1.1 依赖
      • 1.2 bootstrap.properties 配置
        • 1.3 请求
          • 1.4 添加远程配置文件
            • 1.4.1 添加
            • 1.4.2 配置信息
            • 1.4.3 添加成功
          • 1.5 测试
            • 1.6 修改配置信息
              • 1.7 再次 测试
                • 1.8 重启项目测试
                • 2、配置信息实时刷新
                  • 2.1 添加注解
                    • 2.2 测试
                    • 3、批量读取配置信息
                      • 3.1 配置类
                        • 3.2 请求
                          • 3.3 测试
                          • 4、读取配置文件的组成
                            • 4.1 active指定配置环境
                              • 4.2 添加配置文件
                                • 4.3 测试
                                • 5、命名空间 和 分组
                                  • 5.1 添加命名空间
                                    • 5.2 指定命名空间个分组
                                      • 5.2.1 添加配置
                                  • 6、配置文件级别
                                    • 6.1 配置文件级别
                                      • 6.2 共享配置
                                        • 6.2.1 配置信息
                                        • 6.2.2 添加配置文件
                                        • 6.2.3 测试
                                        • 6.2.4 在配置一个共享配置,下标1
                                        • 6.2.5 添加配置文件
                                        • 6.2.6 测试
                                      • 6.3 扩展配置
                                        • 6.3.1 配置信息
                                        • 6.3.2 添加配置文件
                                        • 6.3.3 测试
                                    相关产品与服务
                                    微服务引擎 TSE
                                    微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档