当前位置: 首页 > news >正文

nacos 高级 配置管理 动态路由

一、配置共享

      1.介绍

  在nacos中配置共享文件可以简化微服务中各个配置文件的书写,规范文件

Nacos 配置共享是一种在多个服务中共享相同配置的技术,其目的在于减少重复配置的维护量,提升配置管理的效率和一致性。

实现Nacos配置共享,主要涉及在Nacos server上创建共享配置文件,以及在客户端正确读取这些共享配置。共享配置可以通过 shared-dataids 属性来指定要读取的共享配置文件的 Data ID,多个文件用逗号分隔。

        2.示例

        ①打开 进入nacos页面点击配置列表,右边点击新建一个配置(右边的加号)

书写公共的需要抽取的配置

:后面的为默认值

书写完成后点击发布

在后端配置文件只需简单配置即可

②新建一个bootstrap.yaml

spring:application:name: cart-service # 服务名称profiles:active: devcloud:nacos:server-addr: 192.168 # nacos地址config:file-extension: yaml # 文件后缀名shared-configs: # 共享配置- dataId: shared-jdbc.yaml # 共享mybatis配置- dataId: shared-log.yaml # 共享日志配置- dataId: shared-swagger.yaml # 共享日志配置

二、配置热更新

        1.介绍

热更新可以在项目不重启的情况下,更改配置

Nacos提供了多种配置热更新的方式,包括使用 @Value@RefreshScope 注解的方法,以及使用 @ConfigurationProperties 注解等方法

        2.使用

①在nacos中定义一个配置文件

名称为:微服务名+-环境+.yaml(环境不配做默认都生效)

②定于个config

在后端读取文件,以热更新的方式。

package com.xxxde.cart.config;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;@Data
@Component
@ConfigurationProperties(prefix = "xxxde.cart")
public class CartProperties {private Integer maxAmount;
}

三、动态路由

        1.介绍

在不用重启网关的前提下,热更新路由

Nacos结合Spring Cloud Gateway可以实现灵活高效的动态路由功能,有助于简化微服务架构中的服务调用和管理。在实际应用中,需要合理配置Nacos和Gateway,并确保两者之间的正确连接,以充分发挥动态路由的优势。

        2.使用实例

        1.利用nacosConfigManager.getConfigService()方法拉取并添加一个监听器

        监听到路由利用org.springframework.cloud.gateway.route.RouteDefinitionWriter这个接口进行更新路由

为了方便处理 nacos的配置用JSON文件

结果

无需重启自动更新

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • HCIA--实验十三:VLAN间通信子接口实验/双单臂路由实验
  • 学会这2项技能,普通人每年多赚10万+,互联网创业者必备!
  • 华为 HCIP-Datacom H12-821 题库 (15)
  • 通讯录(静态版)
  • GitLab CI Runner安装
  • 活动系统开发之采用设计模式与非设计模式的区别-非设计模式
  • [mysql]SQL语言的规则和规范
  • 黑链、黑帽、明链分别是什么意思
  • 通话记录被删除,如果快速恢复iPhone手机通话记录
  • 网络药理学:分子动力学模拟入门、gromacs能量最小化
  • 【原理图PCB专题】案例:Cadence能设计一个没有管脚的器件吗?
  • 云曦2024秋季开学考
  • 嵌入式产品发货后出现问题,怎么办?
  • 【Unity面经】性能优化篇
  • 掌握数据库与SQL
  • [case10]使用RSQL实现端到端的动态查询
  • Akka系列(七):Actor持久化之Akka persistence
  • JDK 6和JDK 7中的substring()方法
  • Laravel 实践之路: 数据库迁移与数据填充
  • Objective-C 中关联引用的概念
  • TypeScript实现数据结构(一)栈,队列,链表
  • 免费小说阅读小程序
  • 算法-插入排序
  • 国内开源镜像站点
  • # wps必须要登录激活才能使用吗?
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (Charles)如何抓取手机http的报文
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (黑马C++)L06 重载与继承
  • (六)Flink 窗口计算
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (三)c52学习之旅-点亮LED灯
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)Google的Objective-C编码规范
  • (转)程序员技术练级攻略
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .env.development、.env.production、.env.staging
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net FrameWork简介,数组,枚举
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net 简单实现MD5
  • .Net下的签名与混淆
  • :O)修改linux硬件时间
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [04]Web前端进阶—JS伪数组
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [2544]最短路 (两种算法)(HDU)
  • [4]CUDA中的向量计算与并行通信模式
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [C#]实现GRPC通讯的服务端和客户端实例
  • [C\C++]读入优化【技巧】