Spring Cloud Alibaba [Nacos]配置中心。

一 启动配置管理

1 添加依赖:

2 在 bootstrap.properties 中配置 Nacos server 的地址和应用名

3 添加配置并编写controller类

4 启动项目,访问配置文件与地址

二 Nacos配置

1 在Nacos页面的配置管理-配置列表中添加配置信息【Data Id】

2 命名空间

2.1命名空间:配置隔离

2.2 同样的在prod生产环境配置相同的配置信息

2.3 每个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置

​编辑3 配置集/配置集ID/配置分组

3.1 默认所有的配置集都属于:DEFAULT_GROUP

3.2 从配置中心中同时加载多个配置集


        Nacos的全称是Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。是阿里巴巴开源易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

        Nacos 致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

        本文主要介绍Nacos 融合 Spring Cloud,成为配置中心

一 启动配置管理

1 添加依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${latest.version}</version>
</dependency>

注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

更多版本对应关系参考:版本说明 Wiki

2 在 bootstrap.properties 中配置 Nacos server 的地址和应用名

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

spring.application.name=mall-coupon

说明:之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分。

3 添加配置并编写controller类

#application.properties中添加配置
coupon.user.name=couponserver

在CouponController中添加@RefreshScope注解,表示可以实时动态刷新nacos配置文件的信息

@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Value("${coupon.user.name}")
    private String username;

    @RequestMapping("/config")
    public R config(){
        return R.ok().put("memberList", username);
    }
}

4 启动项目,访问配置文件与地址

二 Nacos配置

1 在Nacos页面的配置管理-配置列表中添加配置信息【Data Id】

重新启动项目访问地址:

此时可以实现粗颗粒度的Nacos的动态配置

2 命名空间

2.1命名空间:配置隔离

 默认:public(保留空间):默认新增的所有配置都在public空间。

可以创建开发、测试、生产三种环境,利用命名空间来做环境隔离。

2.2 同样的在prod生产环境配置相同的配置信息

 在配置文件中添加prod对应的id,如果不定义命名空间,则默认使用public中的配置文件, 注意:在bootstrap.properties配置上,需要使用哪个命名空间下的配置

spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=bc61884b-4bb0-43bf-be7d-b8cb229202de

重启服务测试接口:

2.3 每个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置


3 配置集/配置集ID/配置分组

配置集:所有的配置的集合

配置集ID:类似文件名
Data ID:类似文件名

配置分组


3.1 默认所有的配置集都属于:DEFAULT_GROUP

在同一个命名空间下,可以配置多个分组

在程序中,如果想使用prod这个分组的配置信息,则需要在bootstrap.properties文件添加以下配置:

spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=97b235bf-2357-4e43-a74d-369ebf0dced6
spring.cloud.nacos.config.group=dev

测试接口

3.2 从配置中心中同时加载多个配置集

1、将application.yml文件中的配置信息分离,数据库配置的放在一个配置里面,mybatis的相关信息放在一个配置里面,其他的放在other.yml文件中

2、将application.yml文件注释掉


3、在bootstrap.properties文件中配置:

spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=97b235bf-2357-4e43-a74d-369ebf0dced6
spring.cloud.nacos.config.group=dev

spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true

猜你喜欢

转载自blog.csdn.net/HAN_789/article/details/143011864