SpringCloud-alibaba - 03 - 使用nacos做配置中心

使用nacos做配置中心

步骤

1.新建一个springboot项目
2.修改pom.xml,如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.moyang.learn</groupId>
    <artifactId>alibaba-nacos-config-client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>alibaba-nacos-config-client</name>
    <description>使用nacos做配置中心</description>

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

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!-- 可选-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

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

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

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>0.2.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

2.新建一个bootstrap的配置文件

spring.application.name=alibaba-nacos-config-client
server.port=8084
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

3.(可选)在启动类上添加:
@EnableDiscoveryClient

4.写一个测试类

package com.moyang.learn.alibabanacosconfigclient.rest;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope
public class TestRest {

    @Value("${title:111}")
    private String title;

    @Value("${moyang.name}")
    private String name;

    @GetMapping("title")
    public String title() {
        return "返回的是:" + this.title;
    }
    @GetMapping("name")
    public String name(){
        return "返回的是:" + this.name;
    }
}

5.在nacos中配置如下:
点击配置列表,点击新建。
nacos中编辑配置

dataId: 对应的服务提供者的spring.application.name
Group:默认是DEFAULT_GROUP

然后编辑配置内容,如下,
在nacos中编辑配置-编辑配置内容

6.启动服务、访问 http://127.0.0.1:8084/name即可出现fangxiaobai。
然后修改配置内容,修改为 moyang.name=moyang,再次刷新页面就可以出现moyang了。

其他配置

// 可以通过一下内容指定文件前缀,文件后缀和分组。
spring.cloud.nacos.config.prefix=example
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.group=DEV_GROUP

nacos配置的多环境配置

有三种方式:

  • s p r i n g . c l o u d . n a c o s . c o n f i g . p r e f i x − {spring.cloud.nacos.config.prefix}- spring.cloud.nacos.config.prefix{spring.profile.active}.${spring.cloud.nacos.config.file-extension}
  • 使用分组实现,创建几个不同的组,在配置文件里指定即可。
  • 使用namespace实现。 在不同的命名空间下,可以存在相同的Group和Data ID的配置.注意要在应用中指定所使用的namespace的ID,比如spring.cloud.nacos.config.namespace=cf57341f-8711-43be-a6e8-8a45db57ca6a

nacos配置的多文件加载和共享配置

两种方式:

  • 使用spring.cloud.nacos.config.ext-config配置,接收的是一个数组类型,如下:
spring.cloud.nacos.config.ext-config[0].data-id=actuator.properties
spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=log.properties
spring.cloud.nacos.config.ext-config[1].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[1].refresh=true
  • 也可以如下配置:
spring.cloud.nacos.config.shared-dataids=actuator.properties,log.properties
spring.cloud.nacos.config.refreshable-dataids=actuator.properties,log.properties

配置共享文件的加载优先级

三类方式

A: 通过spring.cloud.nacos.config.shared-dataids定义的共享配置
B: 通过spring.cloud.nacos.config.ext-config[n]定义的加载配置
C: 通过内部规则(spring.cloud.nacos.config.prefix、spring.cloud.nacos.config.file-extension、spring.cloud.nacos.config.group这几个参数)拼接出来的配置

优先级别是:A > B > C , A是最优先加载的。

最后

如果你觉得写的还不错,就关注下公众号呗,关注后,有点小礼物回赠给你。
你可以获得5000+电子书,java,springCloud,adroid,python等各种视频教程,IT类经典书籍,各种软件的安装及破解教程。
希望一块学习,一块进步!
在这里插入图片描述

posted @ 2019-04-17 13:41  方家小白  阅读(21)  评论(0编辑  收藏  举报