微服务-配置中心-nacos

1,629 阅读2分钟

问题:

原理:

启动Springboot的时候。去读取配置中心的配置文件。
在naco添加一个配置文件。DataId名称 和 项目配置文件中要进行对应。
DataId的格式为: ${prefix}-${spring.profile.active}.${file-extension}
prefix prefix 默认是spring.application.name 也可以用 spring.cloud.nacos.config.prefix 重新指定
spring.profile.active 对应各个环境, test rd pro
file-extension 后缀 properties 和 yaml。

文档:

nacos官网: 

步骤

1.关于下载和启动nacos就先看这个 https://juejin.cn/user/4001878054538839 的1-2步
2.在配置中心添加一个配置文件
3.搭建一个项目,并引用nacos
4.编写配置配置文件

2.在配置中心添加一个配置文件

    DataId的配置规则:
    DataId的格式为: ${prefix}-${spring.profile.active}.${file-extension}
    prefix prefix 默认是spring.application.name 也可以用 spring.cloud.nacos.config.prefix 重新指定
    spring.profile.active 对应各个环境, test rd pro 默认无
    file-extension 后缀 properties 和 yaml。默认properties
    
    这里配置的DataId为nacos-config. 为了简单使用。把项目的spring.application.name的属性也配置为nacos-config
    配置了一个server.prot=9999 用于启动测试。
    

3.搭建一个项目,并引用nacos

    只需要引入相关依赖就好了。
    注意Springboot,Springcloud,SpringcloudAlibaba对应的版本。
    还引入了Nacos的配置模块,注意这里是nacos-config, 不是nacos-discovery。
    说明配置中心和服务注册发现可以分开使用。
    <!--springboot版本-->
    
    <version>2.0.5.RELEASE</version>
    <!---->
    <dependencyManagement>
        <dependencies>
            <!--F版本-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR4</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--SpringCloudAlibaba还没正式归入到cloud版本里面去,所以需要额外添加-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.0.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <!--nacos作为配置中心-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>

4.编写配置配置文件

    注意。这里要使用的是bootstrap.properties,不是默认的application.properties
    项目启动前 优先加载bootstrap 其次才加载 application,
    
    配置spring.application.name=nacos-config属性。
    注意这里nacos-config和nacos里的DataId一致。注意看DataID的格式。
    
    配置nacos配置中心的地址。 区分config和discovery
    注意这里是用的
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    不是
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    
    这里没有配置端口,因为刚刚在nacos上配置了一个文件。启动项目。查看是否读取到了配置中心的文件。

    可以发现。已经读取到了配置文件的属性。
    这样的话。就可以在配置中心配置mysql,redis等连接属性。
    这样在启动的时候。就可以直接读取到了nacos中的属性。

总结:

    1.要在bootstrap配置文件中配置nacos相关属性。
    2.理解nacos的DataId的规则。
    3.别把nacos的配置中心和服务注册搞混了。
    4.当你需要读取多个配置文件的时候。
    spring.cloud.nacos.config.shared-dataids= xxx.properties,xxx.properties
    5.或者多个项目读取一个配置文件的时候,重新指定DataId就可以了,不用spring.application.name属性
    spring.cloud.nacos.config.prefix=xxxx