nacos服务配置中心演示

新型技术,替代spring config center & bus

Nacos作为配置中心-基础配置

⑴ module
cloudalibaba-config-nacos-client3377

(2) pom

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

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

        <!--web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!--一般基础配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

(3) yaml

  • application.yaml
# environment

spring:
  profiles:
    # active: dev
    # active: test
    active: info # 测试分组

  • bootstrap.yaml
# config center --> server

server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #服务注册中心地址
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #指定yaml格式的配置
        # group: DEV_GROUP # 生产 分组
        group: TEST_GROUP # 测试 分组
        namespace: ac4eb07f-e257-44eb-80fb-178447a304f7 # 配置namespace 为流水号, 下面可以有多个分组group, 每个分组可以有多个实例dataId

# 配置规则如下.

# https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
# ${prefix}-${spring.profiles.active}.${file-extension}
# {spring.application.name}-${profile}.${spring.cloud.nacos.config.file-extension}
# so dataID ---> nacos-config-client-dev.yaml

(4) 主启动

@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377 {
    
    

    public static void main(String[] args) {
    
    

        // boot
        SpringApplication.run(NacosConfigClientMain3377.class, args);

    }

}


(5) 业务接口,配置刷新

@RefreshScope // auto refresh config
@RestController
public class ConfigClientController {
    
    

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
    
    

        return "config info from nacos center ---> \n" + configInfo;
    }

}

(6)核心,在nacos web界面配置信息存放


界面配置
在这里插入图片描述

(7)配置搞定后,启动服务,访问接口,便可获取配置信息了。

Nacos作为配置中心-分类配置

nacos 中的namespace, group, dataId. 类似Java中的包,类,方法。

  • dataId, 指定spring.profile.active和配置文件的DataID来使不同环境下读取不同的配置. 切换application.yaml 中的环境即可。
  • group方案,新建分组即可,通过group来区分环境。
  • namespace方案,区分环境。

nacos将配置持久化到mysql

默认持久化到内置数据库derby
https://nacos.io/zh-cn/docs/deployment.html

猜你喜欢

转载自blog.csdn.net/qq_44783283/article/details/111590459