微服务:配置管理

为什么引入了配置管理?

  微服务内重复配置过多,维护成本较高

  业务配置经常变动,每次修改都要重启服务

  网关路由配置写死,如果改写需要重启网关

 

配置文件共享

首先在nacos中创建一个配置:

在配置管理的配置列表中,右边点击加号

填写dataId,修改配置内容,支持使用${value}读取application.yml中的数据

载入依赖

        <!--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>

在springcloud项目的res中添加bootstrap.yml

spring:
  application:
    name: user-service  # 微服务名称
  profiles:
    active: dev
  cloud:
    nacos:
      server-addr: 192.168.88.95:8848
      config:
        file-extension: yaml
        shared-configs:
          - data-id: jdbc.yaml
          - dataId: log.yaml
          - dataId: swagger.yaml

修改application.yml

server:
  port: 8086
hm:
  db:
    database: hm-pay
  swagger:
    title: 黑马商城支付接口文档
    description: "黑马商城支付接口文档"
    resname: pay

 

 配置热更新(这里千万要遵循老师指导:能cv绝不手写,不然你就要像我一样一个错误查一个小时最后发现是单词拼错了)

首先在模块内创建一个属性读取类来读取需要热更新的属性

@Data
@Component
@ConfigurationProperties(prefix = "hm.cart")
public class CartProperties {
    private Integer maxAmount;
}

将配置添加至nacos中,文件名需要遵守的格式为

[服务名]-[spring.active.profile].[后缀名]
spring.active.profile,可以省略,则所有profile共享该配置
hm:
  cart:
    maxAmount: 1

随后该参数直接在nacos中改动即可,不需要重启服务器就可以实现参数变动。在console中我们可以看到maxAmount改动后生效了

 

 

posted on 2024-04-28 20:54  天启A  阅读(2)  评论(0编辑  收藏  举报

导航