SpringCloudAlibaba(三):使用Nacos作为配置中心

2024-06-11 03:32

本文主要是介绍SpringCloudAlibaba(三):使用Nacos作为配置中心,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

Nacos 控制台增加配置文件

  1. 进入Nacos管理界面,在【配置管理】-【配置列表】功能页面点击右上角的 + 号。
  2. 进入 新建配置 页面,填写要新增的配置内容
  3. WARN:Data ID的默认扩展名为properties,如果需要使用yaml格式则需要指明是 .yaml
  4. 发布配置 配置完成后点击发布,即可在配置列表中看到刚才新增的配置

创建Nacos Config客户端

  1. 新建项目,由于使用SpringCloudAlibaba直接引用相关依赖 ```xml

com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config org.springframework.boot spring-boot-starter-web

2.  创建应用主类并且实现一个HTTP接口
*   启动类
```java
@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]
    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的名称

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

      再次发送请求

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

github: https://github.com/CainGao/SpringCloudAlibabaExample  码云:   https://gitee.com/CainGao/SpringCloudAlibabaExample

这篇关于SpringCloudAlibaba(三):使用Nacos作为配置中心的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050082

相关文章

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核