03nacos--配置中心简述

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

配置中心的配置及使用

添加配置依赖

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

  
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-config
  

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

@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

03nacos--配置中心简述_第1张图片

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

常见异常

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

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

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

你可能感兴趣的:(SCA,java)