在微服务架构下,一般会存在大量的服务。如果每个服务的配置文件都独立存储,会有如下一些问题:

1.配置文件太分散,不便于管理。

2.太多的冗余配置,通用配置不能共享。

3.不支持配置文件的动态刷新,改了配置必须要重启服务。

 

Nacos可以提供配置中心的服务,提供通用配置共享的功能。

 

 

本文以cloud-jifen服务为例,

1、在nacos管理系统新建配置:

 

cloud-jifen模块的pom文件添加引用:

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

 

在cloud-jifen模块中的application.yml,注释掉全部内容。

resources文件夹下,新增bootstrap.yml文件:

spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        namespace: public
        group: DEFAULT_GROUP
        username: nacos
        password: nacos
        prefix: cloud-jifen
        file-extension: yaml
  profiles:
    active: public

启动cloud-jifen模块,即可看到服务正常注册到nacos里。

 

Nacos的动态刷新机制,在服务者的服务类(Controller)上,添加一个注解,@RefreshScope:

@RestController
@RequestMapping("/jifen")
@RefreshScope
public class JifenController {
}

 

Nacos的配置共享机制,在nacos控制台上添加一个公共配置文件,common.yaml:

 

 然后在nacos控制台上,修改cloud-jifen-public.yaml文件,只保留个性的配置信息。

 

 

目前有2个配置文件:

 

 

 最后修改项目中的bootstrap.yml文件:

spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        namespace: public
        group: DEFAULT_GROUP
        username: nacos
        password: nacos
        prefix: cloud-jifen
        file-extension: yaml
        shared-configs:
          - common.yaml
        #指定共享配置文件支持动态刷新
        refreshable-dataids: common.yaml
  profiles:
    active: public

 

Nacos的版本管理机制,可以在Nacos控制台上选择“历史版本”,根据DataId和Group查询配置文件的历史版本,并且可以直接通过"回滚操作",还原某一个历史版本。

 

posted on 2021-11-11 17:15  Sempron2800+  阅读(202)  评论(0编辑  收藏  举报