• (三)SpringCloudAlibabaNacos配置中心


    1、在项目中引入Nacos配置中心

    在启动示例进行演示之前,我们先了解一下 Spring Cloud 应用如何接入 Nacos Config。 注意 本章节只是为了便于您理解接入方式,本示例代码中已经完成接入工作,您无需再进行修改。

    1. 首先,修改 pom.xml 文件,引入 Nacos Config Starter。

       <dependency>
           <groupId>com.alibaba.cloud</groupId>
           <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
       </dependency>
    2. 在应用的 /src/main/resources/bootstrap.properties 配置文件中配置 Nacos Config 元数据

      spring.application.name=ttmall-coupon
      spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    3. 在应用的 src/main/resources/application.properties配置文件中添加如下测试配置数据

      coupon.user.name=zhangsan
      coupon.user.age=11
    4. 完成上述步骤后,应用会从 Nacos Config 中获取相应的配置,并添加在 Spring Environment 的 PropertySources 中。这里我们使用 @Value 注解来将对应的配置注入到 SampleController 的 userName 和 age 字段。并编写测试方法打印 userName 和 age 。

      RestController
      @RequestMapping("coupon/coupon")
      public class CouponController {
      @Autowired
      private CouponService couponService;

      @Value("${coupon.user.name}")
      String name;

      @Value("${coupon.user.age}")
      int age;

      @RequestMapping("/member/testNacosConf")
      public R testNacosConf(){
      return R.ok().put("name",name).put("age",age);
      }
      }

      启动服务,并访问测试方法url:http://localhost:7000/coupon/coupon/member/testNacosConf 

      结果如下:

    2、使用Nacos配置中心动态的获取配置信息

    1. 在 Nacos 版本自带控制台中新建如下配置:

       dataId 为 nacos-config-example.properties
       group 为 DEFAULT_GROUP
       
       内容如下
       
       coupon.user.id=
       coupon.user.name=
       coupon.user.age=

      2、在controller上添加注解@RefreshScope 可以从nacos配置中心来动态刷新配置

       重新访问测试类方法,效果如下:

               

    3、Nacos配置中心 使用进阶

      3.1、命名空间:配置隔离

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

      场景一:实际开发中,可以有开发、测试、生产 等空间,可以利用命名空间来做环境隔离

          1、新建如下命名空间

                          

          2、在配置列表中选择dev命名空间,添加如下配置

                         

                       

          3、在src/main/resources/bootstrap.properties 中添加nacos命名空间配置 

    spring.cloud.nacos.config.namespace=cdbef139-c55c-4787-9906-853a0b5e463b

         其中namespace的值从这里获取

                     

         4、重启服务,访问测试类方法,效果如下:

        

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

               

         

         

         重启服务,访问测试类方法,效果如下:

         

      3.2、配置集

          一组相关或者不相关的配置项的集合称为配置集,一个配置文件通常就是一个配置集

      3.3、配置集ID

          类似于配置文件名,即Data ID(就是配置的名字加类型)

      3.4、配置分组

          默认所有的配置集都属于DEFAULT_GROUP组。可以根据某个时期,或者某个事件等进行分组,例如电商可以根据双十一,618的优惠策略来修改分组。

         使用场景:每个微服务创建自己的命名空间,使用配置分组来区分环境:dev   test   prod

          1、在命名空间coupon 下创建两个配置,配置分组分别为:dev  test ,配置内容如下

          

          

          

          2、在coupon服务配置文件bootstrap.properties 中新增如下配置:

    spring.cloud.nacos.config.group=dev

         

         3、重启服务,访问测试类方法,效果如下:

        

      3.5、使用不同的配置分组加载多个配置集 

         使用场景:在实际开发中,会有多个配置文件需要加载,我们需要将不同的配置文件搭配命名空间和配置分组来使用

          1、我们将application.yml中的配置拆分成如下几个配置文件进行测试

          

          

          

          

          

           2、在coupon服务配置文件bootstrap.properties 中新增如下配置: 

    spring.cloud.nacos.config.ext-config[0].data-id=mybatis.yml
    spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
    spring.cloud.nacos.config.ext-config[0].refresh=true
    
    spring.cloud.nacos.config.ext-config[1].data-id=datasource.yml
    spring.cloud.nacos.config.ext-config[1].group=DEFAULT_GROUP
    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=DEFAULT_GROUP
    spring.cloud.nacos.config.ext-config[2].refresh=true
    

          

          3、将原来系统配置文件application.yml中的配置全部注释

          

         4、重启服务,访问测试类方法,效果如下:

           

         

      

  • 相关阅读:
    【今日CS 视觉论文速览】Mon, 7 Jan 2019
    文章汇总页面
    【MarkDown】转义字符
    hdu 4678 Mine 博弈论
    hdu 4294 Multiple
    hdu 4291 A Short problem
    hdu 4672 Present Day, Present Time 博弈论
    hdu 3544 Alice's Game 博弈论
    hdu 3389 Game 博弈论
    hdu 2147 kiki's game 博弈论
  • 原文地址:https://www.cnblogs.com/ljjdyz/p/16053419.html
Copyright © 2020-2023  润新知