天天看点

Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置

回顾

上一章节我们讲了Nacos作为注册中心,并将Gateway网关服务注册到Nacos注册中心,本章我们讲解怎么使用Nacos作为服务配置中心。

为什么使用配置中心

配置实时生效:

传统的静态配置方式要想修改某个配置只能修改之后重新发布应用,要实现动态性,可以选择使用数据库,通过定时轮询访问数据库来感知配置的变化。轮询频率低感知配置变化的延时就长,轮询频率高,感知配置变化的延时就短,但比较损耗性能,需要在实时性和性能之间做折中。配置中心专门针对这个业务场景,兼顾实时性和一致性来管理动态配置。

配置管理流程:

配置的权限管控、灰度发布、版本管理、格式检验和安全配置等一系列的配置管理相关的特性也是配置中心不可获取的一部分。

多种配置中心功能对比

Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置

总的来说,Apollo和Nacos相对于Spring Cloud Config的生态支持更广,在配置管理流程上做的更好。Apollo相对于Nacos在配置管理做的更加全面,不过使用起来也要麻烦一些。Nacos使用起来相对比较简洁,在对性能要求比较高的大规模场景更适合。

此外,Nacos除了提供配置中心的功能,还提供了动态服务发现、服务共享与管理的功能,降低了服务化改造过程中的难度。

步骤

1、打开gateway服务yml添加配置代码

Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置
config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}  # Nacos配置中心,引用上面nacos地址
        file-extension: yaml # 配置文件类型,后缀
        namespace: ${spring.cloud.nacos.discovery.namespace} # 命名空间,引用上面命名空间
        group:GATEWAY_GROUP # 分组
        extension-configs: # 引入其他配置文件
          - data-id: bifang-redis.yaml
            group: COMMON_GROUP
            refresh: true
           

2、Nacos创建对应配置文件

Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置
Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置

引入公共配置

当我们每个服务都需要连接同一个redis或者加载相同配置时,我们可以创建公共配置并在每个服务引入。

Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置
Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置

这样在我们gateway微服务中就从nacos引入了两个配置文件。

测试

编写测试接口,请求接口打印信息。

Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置
@RestController
public class Test {
    @Value("${redis.port}")
    private String port;
    @Value("${common.test}")
    private String test;

    @GetMapping("/test")
    public String test(){
       return "获取到配置中心配置信息:"+port+"----"+test ;
    }
}
           

启动项目访问测试:http://127.0.0.1:9000/test

Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置

看到打印信息,获取配置成功。

自动刷新配置

方法添加@RefreshScope注解,更改Nacos配置文件内容,再访问端口http://127.0.0.1:9000/test 测试实时刷新。

Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置
Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置
Spring Cloud微服务脚手架搭建实战——Nacos作为配置中心实现动态配置