微服务-nacos配置管理

这篇具有很好参考价值的文章主要介绍了微服务-nacos配置管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Nacos配置管理

统一配置管理:一次配置更改并支持热更新。将核心配置存储到配置管理服务,当微服务启动时会自动读取配置管理服务中的配置信息并结合本地配置启动。当配置改动时,配置管理服务会自动通知微服务,微服务读取新配置并自动热更新,无需重新启动。
配置中心的思路是:
1、首先把项目中各种配置全部都放到一个集中的地方进行统一管理,并提供一套标准的接口。2、当各个服务需要获取配置的时候,就来配置中心的接口拉取自己的配置。
3、当配置中心中的各种参数有更新的时候,也能通知到各个服务实时的过来同步最新的信息,使之动态更新。
Hello配置管理
使用nacos作为配置中心,其实就是将nacos当做一个服务端,将各个微服务看成是客户端,将各个微服务的配置文件统一存放在nacos上,然后各个微服务从nacos上拉取配置即可。
对应的依赖为spring-cloud-starter-alibaba-nacos-config注意:启用配置中心后,需要配置文件写到bootstrap配置文件中。只能是bootstrap.yml或bootstrap.properties优先级等级为bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml

需要注意:SpringCloud默认将bootstrap移除了,需要手动添加bootstrap依赖

<dependency>  <groupId>org.springframework.cloud</groupId>  <artifactId>spring-cloud-starter-bootstrap</artifactId>  <version>3.1.5</version></dependency

消费者配置

spring.cloud.nacos.config.server-addr=localhost:8848 服务配置中心的配置spring.cloud.nacos.config.file-extension=yaml 配置使用的后缀名spring.cloud.nacos.config.prefix=nacos-consumer 配置DataId名称,默认就是服务名称spring.cloud.nacos.config.group=DEFAULT_GROUP 默认分组名称spring.profiles.active=dev 读取指定配置文件,配置参数dev开发环境、prod生产环境、test测试环境

配置设置的概念:

  • 命名空间Namespace:不同的项目可以分为不同的命名空间。
  • 配置分组Group:根据项目的不同环境可以一个分组。
  • 配置集Data ID:服务不同环境的不同配置,就是一个配置集
    使用nacos配置管理
    DataID就是配置文件名称,不能冲突,采用【微服务名称-profile.yaml或properties】,如user-service-dev.yaml。默认DataId为spring.cloud.nacos.config.prefix,后面可以添加spring.profiles.active值,对应的文件后缀为spring.cloud.nacos.config.file-extension

分组采用默认即可。配置内容应该只有可能有热更新需求的配置信息,不是将所application.yml中内容全部拷贝。例如数据库地址一般不会频繁更新的,所以添加到配置管理中就不合适。这里适合一些开关类型或者模板类型的配置,pattern.dateformat=yyyy-MM-dd

微服务配置拉取

项目启动先读取nacos中的配置文件,然后读取本地配置文件application.yaml,合并后再创建spring容器,加载受管bean。项目中提供bootstrap.yml优先application.yml,这里配置nacos地址,从而实现nacos中配置信息的读取在控制器中读取配置信息进行验证

@Value("${pattern.dateformat}")
private String dateFormat;
@GetMapping("now")public String now(){  return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateFormat));}

配置热更新

可以在nacos控制台上手动编辑更新配置信息。事实上nacos中的配置文件变更后,微服务无需重启就可以感知。需要通过2种配置方式实现
方式1:在@Value注入的变量所在类上添加注解@RefreshScope

@Slf4j  @RestController  @RequestMapping("/user")@RefreshScopepublic class UserController {    @Value("pattern.dateformat")    private String dateFormat;}

在微服务日志中可以看到服务更新的自动通知
方式2:使用@ConfigurationProperties注解

@Component  @Data@ConfigurationProperties(prefix="pattern")public class PatternProperties {    private String dataformat;}

修改控制器类通过PatternProperties组件获取配置信息

@Autowiredprivate PatternProperties properties;@GetMapping("now")public String now() {    return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat());  }

推荐配置更新时优先考虑使用@ConfigurationProperties,而不是@Value+@RefreshScope

多环境配置共享

某个配置在开发、测试、生产等不同环境下的数据值一致,每个配置文件中都写一次是不合理的,而且修改时必须在每个配置文件中进行修改就更加的不合理了。微服务启动时会从nacos读取多个配置文件文章来源地址https://www.toymoban.com/news/detail-627955.html

  1. 【spring.application.name】-【spring.profiles.active】.yaml,例如userservice-dev.yaml
  2. 【spring.application.name】.yaml,例如userservice.yaml
  3. 【spring.application.name】,没有后缀,例如userservice无论profile如何变化,[spring.application.name].yaml文件一定会被加载,因此多环境共享配置可以写入这个配置文件中。多配置优先级:服务名-profile.yaml > 服务名.yaml > 本地配置

到了这里,关于微服务-nacos配置管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring 中使用Nacos配置管理

    本文使用的版本为:1.1.1 注:我们在Nacos使用SDK的时候引入了nacos-client依赖,nacos-spring-context默认有nacos-client的依赖,本文示例请勿自己添加Nacos-client依赖,否则后续的示例会有意想不到的错误。 我们Nacos的Java SDK一文中引用的nacos-client版本为2.2.0,nacos-spring-context 1.1.1版本依赖

    2023年04月08日
    浏览(37)
  • 【Spring Cloud】Nacos 配置管理详解

    1.1 为何需要配置管理 在复杂的软件开发与部署过程中,配置管理起到了至关重要的作用。以下是配置管理所带来的主要优势: 解耦配置与代码 :通过将配置从代码中分离,可以在不更改代码的情况下,修改应用的行为。这对于多环境部署(如开发、测试、生产等)来说尤为

    2024年02月10日
    浏览(41)
  • Spring boot3.x 无法向 Nacos2.x进行服务注册的问题

    一:问题描述 配置中心都是可用的,但是就是无法向nacos进行服务注册。 二:问题可能出现的原因有如下两种 1.Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。除了8848还需要开放9848,9849端口。 官方文档说明:Nacos 2.0.0 兼容性文档 | Nacos 2.maven依赖版本的问题

    2024年01月24日
    浏览(41)
  • 【Spring Cloud】关于Nacos配置管理的详解介绍

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Cloud》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起

    2024年02月01日
    浏览(45)
  • Spring Cloud - Nacos 配置统一管理、热部署、多环境配置共享

    目录 一、Nacos 配置统一管理 1.1、启动 Nacos 服务 1.2、Nacos 新建配置 1.3、引入依赖 1.4、Nacos 地址读取   1.5、演示效果 二、Nacos 配置热部署 三、多环境配置共享 在当前文件下打开终端,输入如下指令启动 nacos 服务 访问 nacos 主页,点击配置管理查看配置列表,然后新建配置

    2024年02月10日
    浏览(50)
  • 【Java】微服务——Nacos配置管理(统一配置管理&热更新&配置共享&Nacos集群搭建)

    Nacos除了可以做注册中心,同样可以做配置管理来使用。 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。 Nacos一方面可以将配置集中管理,另一方可以

    2024年02月03日
    浏览(52)
  • 微服务 – Spring Cloud – Nacos 配置中心

    Data ID : nacos-config-client-dev.yaml Group: DEV-CLOUD2023

    2024年02月11日
    浏览(60)
  • 微服务——Nacos配置管理

    目录 Nacos配置管理——实现配置管理 配置管理实践  Nacos配置管理——微服务配置拉取  Nacos配置管理——配置热更新 方式一: ​编辑 方式二(推荐方式):  Nacos配置管理——多环境配置共享  优先级问题   Nacos配置管理——nacos集群搭建  总结​编辑 在一个微服务架构的系统

    2024年02月15日
    浏览(44)
  • 微服务-nacos配置管理

    统一配置管理 :一次配置更改并支持热更新。将核心配置存储到配置管理服务,当微服务启动时会自动读取配置管理服务中的配置信息并结合本地配置启动。当配置改动时,配置管理服务会自动通知微服务,微服务读取新配置并自动热更新,无需重新启动。 配置中心的思路

    2024年02月14日
    浏览(40)
  • 微服务-Nacos(配置管理)

    在Nacos中添加配置信息: 在弹出表单中填写配置信息:  配置获取的步骤如下:  1.引入Nacos的配置管理客户端依赖(A、B服务):  2.在B服务中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml  将配置交给Nacos管理的步骤 : 在Nacos中添加配

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包