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

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

Java中如何正确的停掉线程

《Java中如何正确的停掉线程》Java通过interrupt()通知线程停止而非强制,确保线程自主处理中断,避免数据损坏,线程池的shutdown()等待任务完成,shutdownNow()强制中断... 目录为什么不强制停止为什么 Java 不提供强制停止线程的能力呢?如何用interrupt停止线程s

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va