美文网首页
微服务 3:配置中心(Nacos)(文末有项目连接)

微服务 3:配置中心(Nacos)(文末有项目连接)

作者: _River_ | 来源:发表于2021-04-15 11:47 被阅读0次
文章知识来源主要来源于:赵俊夫先生的博客  以下为原文链接
https://blog.csdn.net/u011177064/category_9572944.html
1:什么是配置
对于一个项目来说,每个项目肯定都有自己的配置文件,
可以配置文件可以是写在yml或者通过数据的形式与应用一起部署。

针对于SpringCloud体系,每个服务也都需要配置,那么需要有一个配置中心,
专门管理各个微应用的配置信息,并且在配置发送更新,马上可以读取到最新的配置信息。
2:Nacos配置规则
在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profile.active}.${file-extension}

prefix 默认为 spring.application.name 的值,
         也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

spring.profile.active 即为当前环境对应的 profile。 

file-exetension 为配置内容的数据格式,
        可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。
         目前只支持 properties 和 yaml 类型。


注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
spring:
  application:
    name: server-name
  cloud:
    nacos:
      discovery:
        server-addr: nacos-host:nacos-port
      config:
        namespace: f3533721-4b21-4ef0-a373-e78b71f639c7
        server-addr: nacos-host:nacos-port
        group: DEFAULT_GROUP
        file-extension: yml
        
配置详细讲解

 config:
    #在nacos上空间地址(默认为public空间 则不需要填)
    namespace: f3533721-4b21-4ef0-a373-e78b71f639c7
    
    #nacos服务的地址
    server-addr: nacos-host:nacos-port
    
    #在nacos上设置的分组
    group: DEFAULT_GROUP
    
    #在nacos上设置的配置文件格式
    file-extension: yml

spring.application.name 服务的名称
spring.cloud.nacos.config.prefix 配置文件的前缀(如没有这个  则使用默认是 服务的名称)
            
spring.cloud.nacos.config.file-extension 配置文件后缀,用于拼接配置配置文件名称

使用SpringCloudConfig这种统一配置时Spring Boot 配置文件的加载顺序,
依次为  bootstrap.properties -> bootstrap.yml 

而Nacos不会读取 application.yml的配置 只会读取bootstrap.yml 
因此需要把 application.yml 修改名称为 bootstrap.yml 
3:Nacos操作
1:新建命名空间
2:在该命名空间下创建配置
3:创建配置
4:代码编写
 @RefreshScope 注解,这个注解主要用于配置的自动更新,
    即在Nacos中该项配置发生变化时,在接口中就能感知到,获取到最新的值。
    
 请求完之后 修改nacos-provider 配置下 app version 的值 再次请求
 根据返回结果发现已经动态刷新了
@RestController
@Slf4j
@RefreshScope
public class NacosConfig {

    @Value("${app.version}")
    private String version;

    @GetMapping(value = "/config/version")
    public String version() {
        return "Hello Nacos Config " + version;
    }
}

项目连接

请配合项目代码食用效果更佳:
项目地址:
https://github.com/hesuijin/spring-cloud-alibaba-project
Git下载地址:
https://github.com.cnpmjs.org/hesuijin/spring-cloud-alibaba-project.git

在service-provider-demo  模块下
在service-consumer-demo 模块下

相关文章

网友评论

      本文标题:微服务 3:配置中心(Nacos)(文末有项目连接)

      本文链接:https://www.haomeiwen.com/subject/hfsdlltx.html