zoukankan      html  css  js  c++  java
  • spring cloud微服务快速教程之(八) Spring Cloud Alibaba--nacos(二)、配置中心

    0-前言

      上一篇我们介绍了nacos作为服务注册发现组件的功能,nacos还具有配置中心的功能,而且支持热加载;

      在此之前,配置中心有Spring Cloud Config,实际上,用这个有很多风险和隐忧,有了nacos,我们可以大舒一口气了,Spring Cloud Config从此只存在垃圾桶;

    1、运行nacos

      跟上篇

    2、集成nacos配置中心

    2-1、添加依赖:

      新建nacos-user-config模块,添加依赖:

           <!-- 集成nacos 服务发现 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>2.0.1.RELEASE</version>
            </dependency>
    
            <!-- 集成nacos 配置中心 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
                <version>2.0.1.RELEASE</version>
            </dependency>

    2-2、增加配置文件bootstap.yml

    (不是application.yml文件,这个bootstrap是程序引导配置,先于application执行)

    server:
      port: 8763
    spring:
      application:
        name: nacos-user-config
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
          config:
            server-addr: 127.0.0.1:8848
            file-extension: yaml
            prefix: nacos-user-config
      profiles:
        active: dev

     

    config:配置了nacos config server的地址,
    file-extension:为配置内容的数据格式,表示扩展名是ymal(目前支持ymal和properties)
    prefix:默认为 spring.application.name 的值
    spring.profile.active: 即为当前环境对应的 profile
    配置是和Nacos中的dataId 的格式是对应的,nacos种dataID的完整格式如下: ${prefix}-${spring.profile.active}.${file-extension}

    以上配置,对应nacos中的dataID为:nacos-user-config-dev.yaml

    注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}

    2-3、nacos 中增加配置项:

    点击+号新增nacos-user-config微服务的配置项:

     

     2-4、项目中应用

    在Controller上添加 @RefreshScope 实现配置的热加载,代码如下:

    @RestController
    @RequestMapping("/user")
    @RefreshScope  //配置热加载
    public class UserController
    {
        //------------配置中心测试
        @Value("${username}")
        private String username;
    
        @RequestMapping("/username")
        public String wid() {
            return username;
        }
    }

     2-5、运行测试

    运行项目,可以看到已经读取到了nacos中的配置:

     更新nacos中的配置并发布,这时候看到项目已经获取了最新的配置,说明实现了热加载:

    nacos就是这么简单高效易用,微服务没理由不选它,下一节我们介绍另一杀器Sentinel;

  • 相关阅读:
    [转载]vue中全局和局部引入批量组件方法
    [转]详解在vue-test-utils中mock全局对象
    [转]imageMagick 在nodejs中报错Error: spawn identify ENOENT的解决方案
    使用 dva 如何配置异步加载路由组件
    dva.js 上手
    [转]axios的兼容性处理
    【转】链接伪类(:hover)CSS背景图片有闪动BUG
    【转】 svn: Server sent unexpected return value (403 Forbidden) in response to CHECKOUT request for-解决方法
    vue 路由相同路径跳转报错
    新手小白第一次与后端联调
  • 原文地址:https://www.cnblogs.com/yanghj/p/12345185.html
Copyright © 2011-2022 走看看