Spring Cloud Alibaba基础教程(2)---使用nacos作为配置中心

目录

1、简介

2、使用Nacos作为配置中心

2.1、项目介绍

2.2、创建配置中心服务

2.3、Nacos配置列表中新建配置

2.4、启动并验证


前面讲解了nacos的安装,以及使用nacos进行服务注册与发现。

本章将要介绍使用nacos作为配置中心,并通过配置页面修改配置进行动态刷新。

1、简介

Nacos不仅可以进行服务注册与发现,还可以进行配置管理。我们可以使用nacos作为配置中心,将整个系统体系内的配置文件集中在nacos中存储。这样的好处如下:

  • 分离的多环境配置,可以灵活的管理,安全性更高。
  • 应用程序打包更为纯粹,以实现一次打包,多出运行的特点。

2、使用Nacos作为配置中心

2.1、项目介绍

继续使用上一篇的工程:springcloud-alibaba-project,创建新的module:service-nacos-config。

2.2、创建配置中心服务

1、首先在maven主工程:SpringCloud-Alibaba-Project下,创建一个module:service-nacos-config。pom.xml导入依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>SpringCloud-Alibaba-Project</artifactId>
        <groupId>com.boyue</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>service-nacos-config</artifactId>

    <dependencies>
        <!--springboot web相关依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--nacos配置中心依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
            <version>0.2.1.RELEASE</version>
        </dependency>
        <!--nacos服务中心依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
            <version>0.2.1.RELEASE</version>
        </dependency>
    </dependencies>

</project>

2、在工程的配置文件bootstrap.yml做相关的配置,配置如下:


#服务的名称,nacos中dataID中的preflix默认使用spring.application.name
#(也可以通过配置项 spring.cloud.nacos.config.prefix来配置)
spring:
  application:
    name: SERVICE-NACOS-CONFIG
  cloud:
    nacos:
      config:
#        nacos 配置中心地址
        server-addr: localhost:8848
#        为配置内容的数据格式,目前只支持 properties 和 yaml 类型
        #指定yaml格式的配置 nacos识别yaml
        file-extension: yaml
      discovery:
#        nacos 服务中心地址
        server-addr: localhost:8848
firstName: 666
  • 此处配置Nacos server 的地址和应用名
  • 这里配置文件必须使用bootstrap(一定是bootstrap.yml文件,不是application.yml文件)文件名,并且需要配置spring.application.name,具体原因见下面介绍 Nacos 配置管理 dataId部分。

思考,在使用nacos作为配置中心时,微服务模块的启动配置文件为什么必须是bootstrap开头?

SpringCloudConfig和 NacosConfig这种统一配置服务在springboot项目中初始化时,都是加载bootstrap配置文件去初始化上下文。在加载属性之前去config server上取配置文件,那NacosConfig或SpringCloudConfig相关配置就是需要最先加载的,而bootstrap文件的加载是先于application文件的。

3、springboot工程的启动类如下:

@SpringBootApplication
@EnableDiscoveryClient
public class ServiceNacosConfig {
//    @EnableDiscoveryClient。注解,开启服务注册与发现,
//    将配置中心的服务注册到注册中心列表去
    public static void main(String[] args) {
        SpringApplication.run(ServiceNacosConfig.class,args);
    }
}

4、编写服务提供的一个普通接口:

@RestController
@RequestMapping("/Info")
@RefreshScope
public class InfoController {
    @Value("${firstName:9998}")
    private String name;
    @GetMapping("/baseInfo")
    public RespBean getInfo(){
        return RespBean.ok("nacos使用配置中心获取的信息:"+name);
    }
}
  • @Value注解读取配置中的信息
  • @RefreshScope是Spring Cloud的原生注解,实现配置自动刷新

2.3、Nacos配置列表中新建配置

1、打开nacos,在配置中心点击“+”号,新建配置。

2、新建配置信息包括,服务端口以及其他有需要的信息:

3、配置分析:

(1)Data Id 是nacos用来定定位配置内容的,完整格式为:

${prefix}-${spring.profile.active}.${file-extension}
  • prefix :默认为 spring.application.name,(也可以通过配置项 spring.cloud.nacos.config.prefix来配置)
  • spring.profile.active : 即为当前环境对应的 profile,例如dev,当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成:
${prefix}.${file-extension}
  • file-exetension : 为配置内容的数据格式,(可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型

因此,本例配置spring.application.name为SERVICE-NACOS-CONFIG,配置文件格式为yaml,则Data Id 为“SERVICE-NACOS-CONFIG.yaml”

(2)Group配合Data Id 一起定位配置内容,暂时不修改,使用默认即可DEFAULT_GROUP。

2.4、启动并验证

1、启动service-nacos-config模块,访问接口如图:

2、修改配置中心对应的配置文件,点击发布以及查看服务日志:

3、再次访问接口:

结论:在Nacos中修改了Key,在用到这个配置的应用中,也自动刷新了这个配置信息。


扫码关注微信公众号:

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值