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

Nacos配置管理+共享配置、配置热更新

1. 什么是配置管理?

Nacos 配置管理是一个集中管理配置的工具。

它把微服务的配置集中存放,方便管理。可以动态更新配置,配置变了,微服务能马上知道并更新,不用重启。还能进行版本控制,记录配置的历史版本方便回滚。并且可以对配置分组,区分不同环境或项目组的配置。同时有一定的权限控制保障配置安全


2. 共享配置

把微服务共享的配置抽取到Nacos中统一管理,这样就不需要每个微服务都重复配置了。分为两步:

2.1. 在Nacos中添加共享配置

cart-service购物车模块为例,将application.yaml中重复的配置集中一起放到Nacos管理中

jdbc相关配置:

日志相关配置:

然后是swagger以及OpenFeign的配置:

而后在nacos控制台分别添加这些配置。

 在配置管理->配置列表中点击+新建一个配置:

在弹出的表单中填写对应信息:

 详细配置信息如下:

spring:datasource:url: jdbc:mysql://${hm.db.host:192.168.218.15}:${hm.db.port:3307}/${hm.db.database}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: ${hm.db.un:root}password: ${hm.db.pw:123}
mybatis-plus:configuration:default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandlerglobal-config:db-config:update-strategy: not_nullid-type: auto

这里的jdbc的相关参数并没有写死,例如:

  • 数据库ip:通过${hm.db.host:192.168.218.15}配置了默认值192.168.218.15,同时允许通过${hm.db.host}来覆盖默认值

  • 数据库端口:同样通过${hm.db.port:3307}配置了默认值为3307,同时允许通过${hm.db.port}来覆盖默认值

  • 数据库database:可以通过${hm.db.database}来设定,无默认值

在控制台查看新增的配置


2.2 拉取共享配置

2.2.1 在cart-service模块中引入依赖:

代码如下:

        <!--nacos配置管理--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--读取bootstrap文件--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>
2.2.2  新建bootstrap.yaml

代码如下:

spring:application:name: cart-service      # 微服务名称profiles:active: devcloud:nacos:server-addr: 192.168.218.15:8848config:file-extension: yaml  # 配置文件类型shared-configs: #共享配置- data-id: shared-jdbc.yaml- data-id: shared-log.yaml- data-id: shared-swagger.yaml

2.2.3 修改cart-service模块的application.yaml

代码如下:

server:port: 8082
feign:okhttp:enabled: true  # 开启okhttp
hm:db:database: hm-cart  #数据库名swagger:title: "黑马商城购物车服务接口文档"package: com.hmall.cart.controller
2.2.4 测试

启动服务,发现所有配置都生效了,说明成功了!


3. 配置热更新

 配置热更新代表的我们修改完配置文件后,不需要重启服务,它会更新到微服务中,简单来说就是可以自动更新,不需要重新启动服务。

分为两步:

3.1 添加配置到Nacos

在nacos中添加一个配置文件,将购物车的上限数量添加到配置中

查看配置:

注意:  配置文件中购物车数量的变量名要和项目中读取配置类中定义的变量名要一致


3.2 新建一个属性读取类

新建一个config包,包下新一个名为CartProperties类,用来读取配置

代码如下:

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

 在业务中使用该属性


3.3 测试

向购物车中添加多个商品 

在nacos控制台,将购物车上限配置为10

 

无需重启,再次测试购物车功能:

加入成功!

无需重启服务,这说明我们的配置热更新就生效了!

http://www.lryc.cn/news/512183.html

相关文章:

  • asp.net core系统记录当前在线人数
  • 秒杀场景的设计思考
  • 快速掌握Haproxy原理架构
  • 基于Centos7.X系统端口占用处理
  • MySQL的索引失效的原因有那些
  • Java重要面试名词整理(十):Kafka
  • 内置ALC的前置放大器D2538A/D3308
  • 04-微服务02
  • Java中的this关键字详解:深入理解与应用
  • 2、C#基于.net framework的应用开发实战编程 - 设计(二、四) - 编程手把手系列文章...
  • 设置首选网络类型以及调用Android框架层的隐藏API
  • “Gold-YOLO:基于聚合与分发机制的高效目标检测新范式”
  • 神经网络-AlexNet
  • Hutool 发送 HTTP 请求的几种常见写法
  • 【Linux】进度条
  • 【zookeeper核心源码解析】第四课:客户端与服务端读写的io核心流程
  • 强化学习蘑菇书笔记
  • 《机器学习》——线性回归模型
  • Linux(Centos 7.6)网卡信息没有了问题处理
  • WEB攻防-通用漏洞-文件上传-js验证-MIME验证-user.ini-语言特征
  • mybatis-plus代码生成器
  • 12.24-12.28Mysql锁阅读笔记
  • 支持最新 mysql9的workbench8.0.39 中文汉化教程来了
  • golang连接jenkins构建build
  • SCAU高程进阶题(自用)
  • 基于STM32F103控制L298N驱动两相四线步进电机
  • libreoffice在Windows和Linux环境的安装和结合Springboot使用教程
  • 前端开发 -- 自动回复机器人【附完整源码】
  • vue+echarts实现疫情折线图
  • 服务器nfs文件共享