美文网首页
Spring Cloud Alibaba微服务系列-配置中心Na

Spring Cloud Alibaba微服务系列-配置中心Na

作者: 小虎哥的技术博客 | 来源:发表于2021-05-27 09:12 被阅读0次

    一、前言

    微服务是将应用拆分多个服务,服务多了,配置文件管理起来就很麻烦,此时就需要配置管理中心来统一管理各个服务应用的配置文件。

    二、添加依赖

    pom.xml中添加spring-cloud-starter-alibaba-nacos-config依赖

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

    因为用到了bootstrap.properties 需要添加spring-cloud-starter-bootstrap依赖,否则bootstrap配置不生效

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>
    

    完整的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <groupId>com.llh</groupId>
            <artifactId>parent</artifactId>
            <version>1.0.0</version>
            <relativePath/>
        </parent>
    
        <modelVersion>4.0.0</modelVersion>
        <artifactId>consumer</artifactId>
        <version>1.0.0</version>
        <name>consumer</name>
        <description>consumer description</description>
        <packaging>jar</packaging>
    
        <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-discovery</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bootstrap</artifactId>
            </dependency>
        </dependencies>
    </project>
    
    

    三、bootstrap.properties

    删除application.properties,创建bootstrap.properties,内容如下:

    # 应用名称
    spring.application.name=consumer
    # nacos配置中心
    spring.cloud.nacos.config.server-addr=http://localhost:8848
    spring.cloud.nacos.config.file-extension=properties
    spring.cloud.nacos.config.group=DEFAULT_GROUP
    spring.cloud.nacos.config.namespace=83e9d384-d49e-4f40-84bf-c25612883dcc
    spring.cloud.nacos.config.username=nacos
    spring.cloud.nacos.config.password=nacos
    # nacos配置中心 公共配置文件
    spring.cloud.nacos.config.shared-configs[0].data-id=common.properties
    spring.cloud.nacos.config.shared-configs[0].refresh=true
    spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP
    
    • 注意:spring.cloud.nacos.config.namespace 与 nacos中的 namespace一致。
    • 这里配置了common.properties为公共配置文件,如所有服务的注册中心都是一样,没必要每个服务都配置一遍。

    四、Nacos创建配置文件

    创建两个配置文件consumer.propertiescommon.properties

    QQ截图20210519194027.png

    consumer.propertiesconsumer的配置文件,就是简单的配置了启动端口。注意consumer.properties的前缀和bootstrap.propertiesspring.application.name一致。

    consumer.properties 内容如下

    # 端口
    server.port=8888
    

    common.properties 是公共配置文件,里面写了跟注册中心相关的配置信息。
    内容如下

    # 注册中心相关
    spring.cloud.nacos.discovery.server-addr=http://localhost:8848
    spring.cloud.nacos.discovery.namespace=83e9d384-d49e-4f40-84bf-c25612883dcc
    spring.cloud.nacos.discovery.username=nacos
    spring.cloud.nacos.discovery.password=nacos
    

    启动项目后可以看到端口是8888,并且服务注册到nacos注册中心上,但是项目中bootstrap.properties并没有配置端口和服务注册相关信息,由此可见端口配置信息和注册配置信息是从配置中心中动态读取的

    五、结语

    源码地址:https://github.com/tigerleeli/xiaohuge-blog/tree/master/spring-cloud-alibaba-config

    nacos生产环境使用需要配置持久化,它默认是存文件的,这样很不安全,一般是用Mysql持久化。并且生产环境可能需要做Nacos集群,这些可以看一下官网。

    同步微信公众号:小虎哥的技术博客

    相关文章

      网友评论

          本文标题:Spring Cloud Alibaba微服务系列-配置中心Na

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