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

    使用篇-续 1、不同命名空间配置可以通过导出、导入的方式实现保存、复制;2、不同命名空间配置可以通过克隆的方式实现...

网友评论

      本文标题:Nacos-2

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