美文网首页
SpringCloudAlibaba(三):使用Nacos作为配

SpringCloudAlibaba(三):使用Nacos作为配

作者: 指尖数虫 | 来源:发表于2020-05-09 21:58 被阅读0次

    之前提到了这次从php技术栈迁移到java技术栈要解决的一个问题就是集中化配置管理。

    我们为什么会有配置中心的需求?

    1. 配置管理变更较为方便
    2. 合理控制配置的权限内容

    Nacos 控制台增加配置文件

    1. 进入Nacos管理界面,在【配置管理】-【配置列表】功能页面点击右上角的 + 号。
    2. 进入 新建配置 页面,填写要新增的配置内容

    WARN:Data ID的默认扩展名为properties,如果需要使用yaml格式则需要指明是 .yaml

    1. 发布配置
      配置完成后点击发布,即可在配置列表中看到刚才新增的配置

    创建Nacos Config客户端

    1. 新建项目,由于使用SpringCloudAlibaba直接引用相关依赖
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    1. 创建应用主类并且实现一个HTTP接口
    • 启动类
    @SpringBootApplication
    public class NacosConfigApplication {
        public static void main(String[] args) {
            SpringApplication.run(NacosConfigApplication.class,args);
        }
    }
    
    • Controller
    @RefreshScope
    @RestController
    @RequestMapping("/config")
    public class ConfigController {
        @Value("${useLocalCache:false}")
        private boolean useLocalCache;
    
        @Value("${name}")
        private String name;
    
        @RequestMapping("/get")
        public boolean get() {
            return useLocalCache;
        }
    
        @RequestMapping("/name")
        public String name(){
            return name;
        }
    }
    

    @RefreshScope在这里的作用就是让配置内容支持动态刷新,也就是当应用运行中,我们在Nacos控制台修改了配置之后这里也会动态的更新。

    1. 项目bootstrap.properties配置服务名称与Nacos地址
    # 配置中心url
    spring.cloud.nacos.config.server-addr=localhost:8848
    # 配置中心展现的服务名称
    spring.application.name=nacos-config-example
    #配置文件类型[TEXT,JSON,XML,YAML,HTML,Properties]
    ![](https://img.haomeiwen.com/i7556614/e8819cd96f944fa6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    spring.cloud.nacos.config.file-extension=properties
    # 配置分组,当前的业务基本选择为某些的GROUP,可以基于业务来划分不同的分组.
    spring.cloud.nacos.config.group=DEFAULT_GROUP
    # 默认选择的配置环境,当前把环境划分为4套, dev[开发环境],test[测试环境],pre[预发环境],prod[生产环境]
    spring.profiles.active=dev
    

    WARN 多环境配置中需要指定Nacos namespace的id,而不是指定namespace的名称

    1. 启动应用程序并进行验证
    • 启动应用
    • 发送请求测试配置是否生效
    • 修改配置进行进行动态刷新
      进入Nacos控制台修改配置信息,name修改为bigData 再次进行测试

    再次发送请求

    至此使用Nacos作为配置中心已经完全搞定,并且也实现了多环境的配置。多环境有几种方式实现,但是我依然习惯使用namespace的方式来实现。
    源码:

    https://github.com/CainGao/SpringCloudAlibabaExample  
    

    相关文章

      网友评论

          本文标题:SpringCloudAlibaba(三):使用Nacos作为配

          本文链接:https://www.haomeiwen.com/subject/mktrnhtx.html