Nacos-2

作者: 大黑跟小白的日常 | 来源:发表于2020-08-07 10:47 被阅读0次

    使用篇-续

    1、不同命名空间配置可以通过导出、导入的方式实现保存、复制;
    2、不同命名空间配置可以通过克隆的方式实现复制;
    3、可以在历史版本中针对具体配置项可以做回滚操作;

    监听

    Nacos Server 主动推送 客户端 发布后的配置内容;
    可以在NacosServer 配置管理->监听查询 下 操作更新发布配置内容。
    原生客户端监听代码如下


    image.png image.png

    应用到分布式系统

    结合spring cloud alibaba

    pom依赖

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.10.BUILD-SNAPSHOT</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.fc</groupId>
        <artifactId>nacos-demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>nacos-demo</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
            <spring-cloud.version>Hoxton.SR6</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    <!--        配置中心-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
    <!--        注册中心 暂时不用-->
            <!--<dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>${spring-cloud-alibaba.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    

    bootstrap.yml配置

    server:
      port: 9000
    spring:
      application:
        name: nacos-demo
      cloud:
        nacos:
          config:
            #nacos地址
            server-addr: 127.0.0.1:8848
            #命名空间
            namespace: 096ad119-e2e0-4371-94c9-430b01102af2
            #配置文件类型,目前只支持yaml,yml,properties,目前不需要了
            file-extension: yaml
            #默认提供者,目前不需要了
            refresh-enabled: true
            enabled: true
            group: NACOS_DEMO
    

    nacos配置-控制台

    image.png
    image.png

    测试代码

    @RestController
    @RefreshScope// 开启动态刷新
    public class TestController {
    
        private Logger logger = LoggerFactory.getLogger(TestController.class);
    
        @Value("${my.name}")
        private String name;
    
        @Value("${my.age}")
        private Integer age;
    
        @Value("${abc}")
        private String abc;
    
        @RequestMapping("/test")
        public String test() {
            logger.info("-------------test---------------");
            logger.info("name  =  {} ,age ={} , abc = {}", name, age, abc);
            return "Hello ~ ";
        }
    
    }
    
    image.png
    image.png

    不需要重启服务,修改配置信息


    image.png
    重新访问
    image.png

    多配置文件设置

    image.png

    bootstrap.yml 配置

    server:
      port: 9000
    spring:
      application:
        name: nacos-demo
      cloud:
        nacos:
          config:
            #nacos地址
            server-addr: 127.0.0.1:8848
            #命名空间
            namespace: 096ad119-e2e0-4371-94c9-430b01102af2
            #配置文件类型,目前只支持yaml,yml,properties,目前不需要了
            file-extension: yaml
            #默认提供者,目前不需要了
            refresh-enabled: true
            enabled: true
            group: NACOS_DEMO
            # 默认服务名称
    #        prefix: nacos-demo
            #配置方式已过期
    #        shared-dataids: shareconfig1.yml,shareconfig2.yml
            #配置方式已过期
    #        refreshable-dataids: shareconfig1.yml,shareconfig2.yml
            # 配置方式已经过期
    #        ext-config:
    #          - data-id: shareconfig3.yml
    #            group: SHARE3_GROUP
    #            refresh: true
    #          - data-id: shareconfig4.yml
    #            group: SHARE4_GROUP
    #            refresh: true
            shared-configs:
              - dataId: common.yaml
                group: DEV_COMMON
                refresh: true
    

    测试代码

        @Value("${common.key1}")
        private String commonKey1;
    
        @RequestMapping("/test")
        public String test() {
            logger.info("-------------test---------------");
            logger.info("name  =  {} ,age ={} , abc = {} , commonKey1 = {}", name, age, abc, commonKey1);
            return "Hello ~ ";
        }
    

    测试结果

    image.png
    image.png

    更改值,测试动态刷新


    image.png
    重新访问
    image.png

    相关文章

      网友评论

          本文标题:Nacos-2

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