likes
comments
collection
share

SpringCloud实践系列(四):Nacos配置中心

作者站长头像
站长
· 阅读数 59

SpringCloud实践系列(四):Nacos配置中心

SpringCloud实践系列(一):Nacos注册中心

Nacos: 注册中心,解决服务注册与发现

SpringCloud实践系列(二):Ribbon负载均衡

Ribbon: 客户端的负载均衡器,解决服务集群的负载均衡

SpringCloud实践系列(三):OpenFeign服务调用

OpenFeign:声明式的HTTP客户端,服务远程调用

SpringCloud实践系列(四):Nacos配置中心

Nacos:配置中心,中心化管理配置文件

SpringCloud实践系列(五):Sentinel流控(待更新)

Sentinel:微服务流量卫兵,以流量为入口,保护微服务,防止出现服务雪崩

SpringCloud实践系列(六):Gateway网关(待更新)

Gateway: 微服务网关,服务集群的入口,路由转发以及负载均衡(结合Sentinel)

SpringCloud实践系列(七):Sleuth链路追踪(待更新)

Sleuth: 链路追踪,链路快速梳理、故障定位等

SpringCloud实践系列(八):Seata分布式事务(待更新)

Seata: 分布式事务解决方案

一、概述

传统配置文件的弊端

1、配置分散,不便于管理

2、通用配置冗余

3、不能不停机修改配置文件

常见配置中心的对比

SpringCloud实践系列(四):Nacos配置中心

二、快速使用

在nacos中编写配置文件

SpringCloud实践系列(四):Nacos配置中心

# 在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}

SpringCloud实践系列(四):Nacos配置中心

项目中配置文件调用nacos中的文件

  • 导入依赖

    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    
  • 编写配置文件(bootstrap.yml)

    # 从配置中心加载配置文件(文件名:${prefix}-${spring.profiles.active}.${file-extension})
    spring:
      cloud:
        nacos:
          config:
            server-addr: localhost:8848
            namespace: dev
            group: DEFAULT_GROUP
            prefix: cloud-order
            file-extension: yml
            username: nacos
            password: nacos
      profiles:
        active: dev
    

三、其他技巧

3.1、不停机动态刷新

像druid连接池的配置,不需任何操作,会自动刷新

常规的加上@RefreshScope即可

@RestController
// 该注解加上后,在nacos里修改配置,会自动刷新
@RefreshScope 
@RequestMapping("/order")
public class OrderController {
	@Value("${url}")
	private String url;
  
  @GetMapping("/test")
  public void test() {
    return url;
  }
}

3.2、共享配置

新建通用信息的配置

SpringCloud实践系列(四):Nacos配置中心

加载共享配置:在bootstrap.yml文件中添加shared-configs参数即可

spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        namespace: dev
        group: DEFAULT_GROUP
        prefix: cloud-order
        file-extension: yml
        username: nacos
        password: nacos
        shared-configs: # 加载共享配置文件(数组形式,可加载多个文件)
          - common.yml
        refreshable-dataids: common.yml # 通用文件中的属性不支持动态刷新,可以指定该属性
  profiles:
    active: dev

3.3、多环境切换

在nacos中分别编写dev和prod环境的配置文件

SpringCloud实践系列(四):Nacos配置中心

SpringCloud实践系列(四):Nacos配置中心

建如下多个文件

SpringCloud实践系列(四):Nacos配置中心

  • bootstrap.yml

    # 指定使用哪个环境
    spring:
      profiles:
        active: prod
    
  • bootstrap-dev.yml

    # 开发环境,指定namespace:dev
    spring:
      cloud:
        nacos:
          config:
            server-addr: localhost:8848
            namespace: dev
            group: DEFAULT_GROUP
            prefix: cloud-order
            file-extension: yml
            username: nacos
            password: nacos
    
  • bootstrap-prod.yml

    # 生产环境,指定namespace:test
    spring:
      cloud:
        nacos:
          config:
            server-addr: localhost:8848
            namespace: prod
            group: DEFAULT_GROUP
            prefix: cloud-order
            file-extension: yml
            username: nacos
            password: nacos
    

3.4、版本回退

在nacos中可以查看历史版本及回滚

SpringCloud实践系列(四):Nacos配置中心

转载自:https://juejin.cn/post/7243680457816195109
评论
请登录