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

Spring Cloud Alibaba 系列之 Nacos 配置中心

作者头像
Demo_Null
发布2020-11-24 14:55:57
1.6K0
发布2020-11-24 14:55:57
举报
文章被收录于专栏:Java 学习Java 学习

1.1 简介

1.1.1 概述

  Nacos 除了通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现以外,还可以通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。Nacos 作为配置中心时是可以动态变更的,不像 Spring Cloud Config 需要配合 Spring Cloud Bus 实现半自动。☞ 官方文档

1.1.2 相关依赖

代码语言:javascript
复制
<!-- 配置中心 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

<!-- 如果需要使用 Spring Cloud Hoxton 版本,请在 dependencyManagement 中添加如下内容锁定版本 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <!-- Spring Cloud Alibaba 与 Spring Cloud 版本对应关系参考下表 -->
    <version>2.2.3.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

Spring Cloud Version

Spring Cloud Alibaba Version

Spring Boot Version

Spring Cloud Hoxton.SR8

2.2.3.RELEASE

2.3.2.RELEASE

Spring Cloud Greenwich.SR6

2.1.3.RELEASE

2.1.13.RELEASE

Spring Cloud Hoxton.SR3

2.2.1.RELEASE

2.2.5.RELEASE

Spring Cloud Hoxton.RELEASE

2.2.0.RELEASE

2.2.X.RELEASE

Spring Cloud Greenwich

2.1.2.RELEASE

2.1.X.RELEASE

Spring Cloud Finchley

2.0.3.RELEASE

2.0.X.RELEASE

Spring Cloud Edgware

1.5.1.RELEASE(停止维护,建议升级)

1.5.X.RELEASE

1.2 简单使用

1.2.1 配置文件

代码语言:javascript
复制
# bootstrap.yml
server:
  port: 8081

spring:
  application:
    name: nacos-producer
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml


# appliaction.yml
spring:
  profiles:
    # 又多个配置文件使用逗号分隔
    active: dev

  在 Nacos Spring Cloud 中,Data ID 的完整格式为: {prefix}-{spring.profiles.active}.{file-extension} 其中 prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置;spring.profiles.active 即为当前环境对应的 profile, 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,Data ID 的拼接格式变成 {prefix}.

1.2.2 启动类

代码语言:javascript
复制
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}

1.2.3 获取配置

代码语言:javascript
复制
@RestController
@RefreshScope	// 通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新
@RequestMapping("/provider")
public class ProviderController {

    @Value("${config.info}")
    private String info;

    @GetMapping("/find")
    public Object find() {
        return "我获取的配置信息为:" + info;
    }
}

1.2.4 添加配置文件

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

1.2.5 测试

  请求服务成功获取到配置信息,我们修改配置中心文件 version=2 发布后再次请求发现获取到了新的配置。这就表明 Nacos 作为配置中心时时动态的配置,而不是 Spring Cloud Config 那种需要手动去刷新的。需要注意的是 Nacos 虽然是动态的配置中心,但是如果修改了数据库相关要么重启要么写一个单独读取配置文件创建数据源的工具类否则配置更新了,数据源没有更新。

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

1.3 配置文件的区分

1.3.1 概述

  命名空间 NameSpace、分组 Group、文件名 DataID 三者任意一个不同都代表不是同一个配置文件,类似于包、类、方法,这三者组合起来任意一个不同找到的方法就不同。

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

1.3.2 Data ID

  这个不用多说 Data ID 就是文件名,文件名不同配置文件肯定不同。

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

1.3.3 Group

  新增配置文件时我们可以发现 Nacos 默认 Group 是 DEFAULT_GROUP。Group 会把不同的微服务划分到同一个分组里面去,Group 可以方便我们的管理。我们在配置文件中新增 spring.cloud.nacos.config.group 指定组名就可以指定从那个分组里面获取配置文件。

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

1.3.4 NameSpace

  最大的是 Namespace(命名空间),Nacos 默认的命名空间是 public,Namespace 主要用来实现隔离。比方说我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个 Namespace,不同的 Namespace 之间是隔离的。我们可以在左侧菜单中找到命名空间来创建新的命名空间,新增可以自定义或者自动帮我们生成一个命名空间 id,新增完毕后我们可以发现在配置列表中多个一个选项卡,我们可以在此切换命名空间。需要注意的是 public 保留空间不可删除。我们在配置文件中新增 spring.cloud.nacos.config.namespace 指定命名空间 id 就可以指定从那个命名空间里面获取配置文件。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 简介
    • 1.1.1 概述
      • 1.1.2 相关依赖
      • 1.2 简单使用
        • 1.2.1 配置文件
          • 1.2.2 启动类
            • 1.2.3 获取配置
              • 1.2.4 添加配置文件
                • 1.2.5 测试
                • 1.3 配置文件的区分
                  • 1.3.1 概述
                    • 1.3.2 Data ID
                      • 1.3.3 Group
                        • 1.3.4 NameSpace
                        相关产品与服务
                        对象存储
                        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档