SpringCloud + Nacos 配合maven,进行环境(配置文件)的切换,dev prod test 三种环境

SpringCloud + Nacos 配合maven,进行环境(配置文件)的切换,dev prod test 三种环境,第1张

SpringCloud + Nacos 配合maven,进行环境配置文件)的切换,dev/ prod/ test 三种环境

푰’풎 풉풉품, 푰 풂풎 풂 품풓풂풅풖풂풕풆 풔풕풖풅풆풏풕 풇풓풐풎 푵풂풏풋풊풏품, 푪풉풊풏풂.

 푺풉풄풐풐풍: 푯풐풉풂풊 푼풏풊풗풆풓풔풊풕풚 푳풆풂풓풏풊풏품: 푰’풎 풄풖풓풓풆풏풕풍풚 풍풆풂풓풏풊풏품 풅풆풔풊품풏 풑풂풕풕풆풓풏, 푳풆풆풕풄풐풅풆, 풅풊풔풕풓풊풃풖풕풆풅 풔풚풔풕풆풎, 풎풊풅풅풍풆풘풂풓풆 풂풏풅 풔풐 풐풏. 푯풐풘 풕풐 풓풆풂풄풉 풎풆:푽푿 푴풚 풃풍풐품: 풉풕풕풑풔://풉풉품풚풚풅풔.풃풍풐품.풄풔풅풏.풏풆풕/ 푷풓풐풇풆풔풔풊풐풏풂풍 풔풌풊풍풍풔:풎풚 풅풓풆풂풎
1-1:环境说明

因为版本不一样,总会有各种问题,所以这里我给出了我的所有的环境。

nacos: 1.1.4maven:3.6.3pom.xml:里面有springcloud等一系列的版本

    
    
        UTF-8
        1.8
        1.8
        4.12
        1.2.17
        1.16.18
        5.1.47
        1.1.16
        1.3.0
    

    
    
        
            
            
                org.springframework.boot
                spring-boot-dependencies
                2.2.2.RELEASE
                pom
                import
            
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                Hoxton.SR1
                pom
                import
            
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.1.0.RELEASE
                pom
                import
            

            
                mysql
                mysql-connector-java
                ${mysql.version}
            
            
                com.alibaba
                druid
                ${druid.version}
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-starter
                ${mybatis.spring.boot.version}
            
            
                junit
                junit
                ${junit.version}
            
            
                log4j
                log4j
                ${log4j.version}
            
            
                org.projectlombok
                lombok
                ${lombok.version}
                true
            
        
    
docker-compose.yaml,dokcer构建nacos的配置
version: "2"
services:
  nacos:
    image: nacos/nacos-server:1.1.4
    container_name: nacos_test
    environment:
    - MODE=standalone
    volumes:
    - ./logs/:/home/nacos/logs
    ports:
    - "8848:8848"
1-2:Nacos *** 作

主要采用namespace+group+dataId的格式完成三个环境的设置。

创建3个命名空间:记住这里的命名空间ID回头要用
分别在不同的命名空间中创建配置,代表3个环境,并设置好需要读取的配置:

config:
    info: "dataId:nacos-config-client-prod.yaml;group:nacos-group-prod;namespace:099fa140-a9d1-42af-861b-85ae54471703"

类似这样的一共设置3个,那么nacos的设置到这就结束了。 1-3:手动切换nacos环境

传统的我们怎么做呢?像这样:

application.yml:

spring:
  profiles:
    active: dev
bootstrap.yal:
server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #Nacos服务注册中心地址
      config:
        server-addr: localhost:8848  #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置
        namespace: aa0828b7-9470-4b30-a387-5f795528e1af
        group: nacos-group-dev

如果你要切换到prod环境下,你就得把上面的配置都换掉,换 spring.profiles.active namespace 还有group,那么我就想了,能不能不用手动呢?或者借助什么工具来做呢?事实上是可以的,比如配合maven就可以!

1-4:配合maven实现环境的切换

pom.xml:首先在maven配置文件里面,当然了分布式在总的模块pom里面设置就可以了!为了简单,这里就弄两个properties,意思一下就可以了。


    
        
        dev
        
            dev
            aa0828b7-9470-4b30-a387-5f795528e1af
            nacos-group-${activatedProperties}
        
    
    
        
        test
        
        
            true
        
        
        
            test
            c16b5823-ed59-48a6-b4af-fa79a17d57e8
            nacos-group-${activatedProperties}
        
    
    
    
        prod
        
            prod
            099fa140-a9d1-42af-861b-85ae54471703
            nacos-group-${activatedProperties}
        
    

application.yml
spring:
  profiles:
    active: @activatedProperties@
bootstrap.yml
server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #Nacos服务注册中心地址
      config:
        server-addr: localhost:8848  #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置
        namespace: @nacosNamespace@
        group: @nacosGroup@
分布式项目里面单个服务模块的pom.xml,不加的话@xx@这个符号无法替换成maven配置里面的数据,这一点要注意:

    
        
            src/main/resources
            true
        
    

controller
@RestController
@RefreshScope  //支持nacos的动态刷新功能
public class ConfigClientController {

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }
}
1-5:测试

首先maven上面出现了这样的可选记号,我们可以选择自己的环境,然后启动项目。

接口:

http://127.0.0.1:3377/config/info


maven切换成dev:


可以发现,这里的文件已经成功切换了,这样就可以做到通过nacos来一键切换环境,并且充分利用nacos的特性。

1-6:github地址

这里给出项目github地址,因为有的代码并没有给出,主要就是3377这个测试用的和父模块里面的pom
点我跳转github:或者复制地址:https://github.com/21want28k/springcloud.git

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5721569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存