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

Nacos统一配置中心

作者头像
别团等shy哥发育
发布2023-02-25 15:28:44
7720
发布2023-02-25 15:28:44
举报
文章被收录于专栏:全栈开发那些事

使用Nacos作为配置中心

1、简介

  nacos管理配置文件方式是在自己所在的服务器上形成一个版本库,因此不需要再创建远程版本库。   Nacos作为统一配置中心管理配置文件时,同样也是存在版本控制。

2、开发微服务作为统一配置中心客户端将配置交给nacos进行管理

2.1 创建项目并引入nacos配置中心依赖

代码语言:javascript
复制
 <!--引入nacos client 依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--引入配置中心依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
在这里插入图片描述
在这里插入图片描述

2.2 配置配置中心地址

文件名必须为bootstrap.properties

代码语言:javascript
复制
# 告诉config server地址
spring.cloud.nacos.config.server-addr=192.168.159.22:8848

#从哪个命名空间获取配置(命名空间ID)
spring.cloud.nacos.config.namespace=781c1432-8a70-413f-aaa8-559cac6057ed

#告诉从哪个组进行配置获取
spring.cloud.nacos.config.group=DEFAULT_GROUP
#从这个组中拉取哪个配置文件
spring.cloud.nacos.config.name=configclient-prod
#指定读取文件后缀
spring.cloud.nacos.config.file-extension=properties
在这里插入图片描述
在这里插入图片描述

2.3 在Nacos中创建配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

记住custom.username这个值,我们在后面会用到,先不用管上面的public|EMS|dangdang三个命名空间。

2.4 编写控制器测试配置读取情况

代码语言:javascript
复制
@RestController
@RefreshScope   //允许远端配置修改自动刷新
@Slf4j
public class DemoController {

    @Value("${custom.username}")
    private String username;

    @GetMapping("/demo")
    public String demo(){
        log.info("demo ok!!!");
        return "demo ok !!! username:"+username;
    }
}
在这里插入图片描述
在这里插入图片描述

2.5 启动项目并测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以看到,配置拉取成功了。

2.6 实现自动配置刷新(比consul+config+Spring Cloud Bus那个简单多了)

默认情况下nacos已经实现了自动配置刷新功能,如果需要刷新配置直接在控制器中加入@@RefreshScope 注解即可。

在这里插入图片描述
在这里插入图片描述

我们现在nacos上修改配置

在这里插入图片描述
在这里插入图片描述

点击发布:

在这里插入图片描述
在这里插入图片描述

测试,可以看到配置已经自动刷新了,真的比config+consul+bus那个简单多了,阿里云好牛逼。

在这里插入图片描述
在这里插入图片描述

3 nacos配置中心细节

3.1 DataId

用来读取远程配置中心的中具体配置文件其完整格式如下:

代码语言:javascript
复制
${prefix}-${spring.profile.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {prefix}.{file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

3.2 微服务拉取配置的两种方式

3.2.1 第一种(dataId=name+file-extension)

代码语言:javascript
复制
# 告诉config server地址
spring.cloud.nacos.config.server-addr=192.168.159.22:8848

#从哪个命名空间获取配置(命名空间ID)
spring.cloud.nacos.config.namespace=781c1432-8a70-413f-aaa8-559cac6057ed

#告诉从哪个组进行配置获取
#spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.group=CONFIGCLIENT


#第一种配置文件获取方式 dataId=name+file-extension
#从这个组中拉取哪个配置文件
spring.cloud.nacos.config.name=configclient-prod
#指定读取文件后缀
spring.cloud.nacos.config.file-extension=properties
在这里插入图片描述
在这里插入图片描述

3.2.2 第二种(dataId=prefix+env+file-extension)

代码语言:javascript
复制
# 告诉config server地址
spring.cloud.nacos.config.server-addr=192.168.159.22:8848

#从哪个命名空间获取配置(命名空间ID)
spring.cloud.nacos.config.namespace=781c1432-8a70-413f-aaa8-559cac6057ed

#告诉从哪个组进行配置获取
#spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.group=CONFIGCLIENT


#第二种配置文件获取方式 dataId=prefix+env+file-extension
spring.cloud.nacos.config.prefix=configclient
spring.profiles.active=prod
spring.cloud.nacos.config.file-extension=properties
在这里插入图片描述
在这里插入图片描述

3.3 统一配置中心nacos三个重要概念

3.3.1 命名空间:namespace

默认nacos安装完成之后会有一个默认的命名空间,这个命名空间的名字为public。 作用:站在项目总角度隔离每一个项目配置文件。

3.3.2 组:group

默认nacos中在管理配置文件时不显示指定group名称则默认的组名称为DEFAULT_GROUP 作用:站在项目中每个服务角度,隔离同一个项目中不同服务的配置

3.3.3 文件名:dataId

获取一个配置文件的唯一标识。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Nacos作为配置中心
  • 1、简介
  • 2、开发微服务作为统一配置中心客户端将配置交给nacos进行管理
    • 2.1 创建项目并引入nacos配置中心依赖
      • 2.2 配置配置中心地址
        • 2.3 在Nacos中创建配置
          • 2.4 编写控制器测试配置读取情况
            • 2.5 启动项目并测试
              • 2.6 实现自动配置刷新(比consul+config+Spring Cloud Bus那个简单多了)
              • 3 nacos配置中心细节
                • 3.1 DataId
                  • 3.2 微服务拉取配置的两种方式
                    • 3.2.1 第一种(dataId=name+file-extension)
                    • 3.2.2 第二种(dataId=prefix+env+file-extension)
                  • 3.3 统一配置中心nacos三个重要概念
                    • 3.3.1 命名空间:namespace
                    • 3.3.2 组:group
                    • 3.3.3 文件名:dataId
                相关产品与服务
                微服务引擎 TSE
                微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档