03nacos--配置中心简述

市场上主流配置中心:Apollo(携程开源),nacos(阿里开源),Spring Cloud Config(Spring Cloud 全家桶成员,使用有些复杂)
作用: 集中管理配置信息,动态发布配置信息,提高服务的高可用

配置中心的配置及使用

添加配置依赖

config该依赖会启动一个定时任务,每隔30s就会向nacos服务发送请求,进行长轮询的方式获取配置中心的配置信息

  <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  </dependency>

application.yml的名字修改为bootstrap.yml(启动优先级最高),并添加配置中心配置 

spring:
  application:
    name: sca-provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml # Configure the data format of the content, default to properties
#logging:
#    level:
#        com.jt: debug

启动nacos,mysql,后端服务,访问服务,在nacos配置中心中进行配置:
(注意:如果配置文件和配置中心都配置,先读取配置中心的,再读取配置文件的,则配置文件中的内容会将配置中心中的内容覆盖,只有配置文件生效)

配置中心中的配置保存到数据库中,nacos启动时,就会从数据库中读取

在这里插入图片描述

 编辑测试类进行测试

@Slf4j
@RestController
public class ProviderLogController {
   
    @GetMapping("/provider/log/doLog01")
    public String doLog01(){//trace<debug<info<warn<error
        System.out.println("==doLog01==");
        log.trace("===trace===");
        log.debug("===debug===");
        log.info("===info====");
        log.warn("===warn===");
        log.error("===error===");
        return "log config test";
    }
}

@RefreshScope
@RefreshScope的作用是在配置中心的相关配置发生变化以后,能够及时看到类中属性值的更新(底层是通过重新创建Controller对象的方式,对属性进行了重新初始化)。

@RefreshScope
@RestController
public class ProviderLogController{
  //.....
}

Nacos配置管理模型

在这里插入图片描述

Namespace:命名空间,对不同的环境进⾏隔离,⽐如隔离开发环境和⽣产环境。
Group:分组,每个命名空间中可以有很多分组,用于不同的环境: 春节,国庆节~。Service/DataId:某⼀个服务或配置集,一般对应一个配置文件。

配置中心中指定使用的命名空间, 分组, 共享配置

spring:
  application:
    name: sca-provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml # Configure the data format of the content, default to properties
        # 命名空间
        namespace: 83ed55a5-1dd9-4b84-a5fe-a734e4a6ec6d # 命名空间自动生成的id
        # 分组名
        group: DEFAULT_GROUP_51 # Group, default is DEFAULT_GROUP
        # 共享配置
        shared-configs[0]:#0表示是一个共享配置
                data-id: app-public.yml
                refresh: true #默认false,共享配置更新,引用此配置的地方是否要更新

 nacos中的具体配置很简单,就不一一截图

#秘钥对内容进行加密和解密时使用
app:
    secret: AAAA
#是否开启本地缓存
useLocalCache: true

项目中在配置文件中指定profiles

spring:
  profiles: # 通过profiles指定不同环境下的配置
    active: dev   #bootstrap-dev.yml

常见异常

mysql中没有配置中心数据
在这里插入图片描述

 配置中心配置格式不正确
在这里插入图片描述

 程序中服务读取配置时,找不到配置
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值