• 使用 nacos 搭建注册中心及配置中心


    本文为博主原创,转载请注明出处:

      在分布式微服务框架中,现在都流行使用 nacos 作为分布式框架的注册中心与配置中心。当我们搭建一套spring boot 框架的时候,默认会将配置文件

    放在 resources 的配置目录下有bootstrap.yml 及application-dev.properties 配置文件进行管理,包括数据库配置,端口配置等等。 

      现在使用 nacos 便可实现服务注册 与 配置管理的功能。

      nacos 提供的中文网址连接如下:https://nacos.io/zh-cn/docs/quick-start-spring-boot.html

      具体步骤如下:

        1.在项目中引入nacos 以及spring boot web启动的相关的依赖

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.5.RELEASE</version>
            <relativePath/>
        </parent>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-boot.version>2.2.8.RELEASE</spring-boot.version>
            <spring-cloud.version>2.2.2.RELEASE</spring-cloud.version>
            <spring-nacos.version>2.2.1.RELEASE</spring-nacos.version>
        </properties>
    
        <dependencies>
            <!--web启动-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>
            <!--nacos-config-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
                <version>${spring-nacos.version}</version>
            </dependency>
            <!--nacos-discovery-->
           <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>${spring-nacos.version}</version>
            </dependency>
    
        </dependencies>

      2.在项目配置 bootstrap.yml 文件中配置配置中心

      其中有一个默认组group的属性,如果不配其默认值为 DEFAULT_GROUP 

    spring:
      application:
        # 服务名称尽量用-,不要用_,不要用特殊字符
        name: test2
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
            file-extension: yaml

      3.本地安装并启动 nacos

        nacos 默认的用户名和密码都为 nacos 。 在nacos 管理台进行配置中心的配置:

        配置管理 ---〉配置列表 ---- 〉点击加号 进行创建

    点击加号进行配置  

      dataId 为项目框架中 bootstrap.yml 中的 spring.application.name 的配置值。

    之于项目中 为什么要配置 bootstrap.yml 中配置application.name  以及项目启动如何匹配对应的配置文件列表,其缘由在nacos 中文网址给了说明:

    进行启动,通过观察项目启动的端口号判断是否正确使用配置中心的配置,若未正确加载,则项目启动成功的端口号则为默认的8080,

    若正确加载,则项目启动的端口号为配置中心的端口号:

      4.配置中心使用命名空间区分环境

        spring boot 项目中,常使用 application-dev.properties, application-test.properties, application-prd.properties等方式指定不同环境下的配置文件。

      nacos配置中心可以创建命名空间,区分不同的环境类型。

    创建之后,会在配置列表看到 dev 的 tab 列表

      在列表中创建对应的配置,我这边创建的简单的配置如下:

     

      在项目代码的配置文件中指定命名空间以及 环境类型就可加载使用,在bootstrap.yaml中配置如下:

      namespace 的值为nacos 中命名空间的ID的值

    spring:
      application:
        # 服务名称尽量用-,不要用_,不要用特殊字符
        name: test1
      profiles:
        active: dev
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
            file-extension: yaml
            group: DEFAULT_GROUP
            namespace: 9f471483-5467-4077-81ae-b7ddb6cf2248

      本地项目启动加载配置,通过启动日志观察服务端口便可判断配置是否加载:

      

    注意事项:

      1.在配置过程中,需要注意 pom中的 spring-boot-starter-parent 与  spring-boot-starter-web 两者的版本号相差不能太大,相差太大,容易导致启动报错,某些类 ClassNotFoundException等

      2.需要在项目的配置文件中指定项目名称

  • 相关阅读:
    synchronized对比cas
    java 数据集合类
    【转载】S2SH
    【转载】Solr4+IKAnalyzer的安装配置
    【转】基于CXF Java 搭建Web Service (Restful Web Service与基于SOAP的Web Service混合方案)
    【转载】solr初体验
    【转载】CSS 盒子模型
    【转载】div层调整zindex属性无效原因分析及解决方法
    【转载】 IE/Firefox每次刷新时自动检查网页更新,无需手动清空缓存的设置方法
    mysql ODBC connector相关问题
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/14249547.html
Copyright © 2020-2023  润新知