nacos--springcloud集成

傻男人 1年前 ⋅ 623 阅读

nacos--springcloud集成

这里使用nacos客户端的版本为2.0.3

引依赖

版本依赖关系

需注意版本直接的相关依赖,这里我选择 springboot :2.2.4.RELEASE springcloud :Hoxton.SR4 springcloudalibaba :2.2.0.RELEASE

父项目引入alibabacloud的相关依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
    </parent>
    
    <properties>
        <spring-cloud.version>Hoxton.SR4</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.0.RELEASE</spring-cloud-alibaba.version>
    </properties>

 <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>

项目nacos依赖

<dependencies>
    <!-- Spring Cloud nacos start-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.0.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        <version>2.0.3.RELEASE</version>
    </dependency>
    <!-- Spring Cloud nacos end-->
</dependencies>

在启动类上添加注解@EnableDiscoveryClient

在需要自动刷新的配置文件的类上增加@RefreshScope来达到动态的刷新配置值

在bootstrap.yml中增加nacos的配置

nacos:
  addr: xxxxx
  namespace: xxxxx

spring:
  cloud:
    nacos:
      discovery: ##注册中心
        server-addr: ${nacos.addr}
        namespace: ${nacos.namespace}
        enabled: true #是否注册到nacos上,默认为true
      config: ##配置中心
        namespace: ${nacos.namespace} 
        server-addr: ${nacos.addr} #配置中心地址
        file-extension: yaml #配置文件的类型,目前只支持 properties 和 yaml 类型
        ## 下面配置基本属于缺省值 可以根据自己实际项目来决定
        max-retry: 5
        enabled: true #是否使用远程配置,默认为true
        group: DEFAULT_GROUP #分组,默认为DEFAULT_GROUP
        prefix: ${spring.application.name} #默认值为:spring.application.name
        data_id: ${prefix}-${spring.profiles.active}.${file-extension} #默认值为:${prefix}-${spring.profiles.active}.${file-extension},当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
        ext-config[0]: #扩展配置 序号需要从0开始
          data-id: base-xxx.yaml
          group: COMMON_GROUP
          refresh: true
        ext-config[1]:
          data-id: xxx.yaml
          group: COMMON_GROUP
          refresh: true

多环境配置

DataID区分

Group区分

Namespace区分

DataID与Group但是每个项目创建多个配置文件,随着项目的增多,都在一个命名空间下回显得很混乱,查找起来也不是很方便,而且不利于做权限控制


全部评论: 0

    我有话说: