spring-cloud配置文件随笔

在我多年工作经验中,接触到的很多分布式项目都将开发引入了无底的深渊,因为痛苦的经历太多,所以在我成为一名架构,搭建分布式架构时,我努力避开那些深渊,使团队中的业务开发人员不至于掐死我。
从前年时,我开时接触微服务架构(主要是spring-cloud技术栈),综观网上流行的一些开源项目,或者有些开发者搭建微服务平台,感觉他们太过把微服务当微服务了,以至于根本就无法分模块开发。主要原因是搭建者不了解spring-cloud框架,或者经验不足,不明白开发环境与测试环境(或正式环境)解耦的重要性。我本人主张轻便开发,我尽量让我的团队在开发时关注业务,而不要时时刻刻关注微服务中的其它组件。

运行时,我们的服务会连接配置中心以及注册中心。但在开发环境,如果开发人员共用注册中心或配置中心肯定会产生很多问题。而让业务开发人员在本地架设配置中心和注册中心会增加学习成本,浪费开发的硬件资源(同时在本地启动多个组件,会占用更多的cup和内存)。通过简单的配置,可暂停服务注册与配置读取。以下是我的配置文件列表:

application-dev.yml 
application-info.yml
application.yml     
bootstrap-dev.yml   
bootstrap-docker.yml
bootstrap-pro.yml    
bootstrap-test.yml  
bootstrap.yml

可以看出,我共用了四种开发环境,其中bootstrap-docker.yml是我运行在k8s中的测试配置。以下是我bootstrap-dev.yml(开发环境),以及bootstrap-test.yml(正式环境配置的内容)

开发环境:bootstrap-dev.yml


spring:
  profiles: dev
  cloud:
    config:
      enabled: false  
      allow-override: true
      discovery:
        enabled: false 
    bus:
      enabled: false 
    consul:
      discovery:
        enabled: false 
        register: false
      config:
        enabled: false 
      enabled: false


server:
  port: 8080
  servlet:
    context-path: /${spring.application.name}

注意上面enable我都设为false,这样就可以读取本地配置,以及取消服务发现功能。

测试环境 bootstrap-test.yml:

spring:
  profiles:
    include: info
  cloud:
    consul:
      discovery:
        instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
        tags: tms,pda,profiles=${spring.profiles.active},buildtime=${info.app.buildtime}
      config:
        format: YAML
        data-key: data

server:
  port: 8081
management:
  endpoint:
    health:
      show-details: always

测试环境没有那些enable配置,因为默认情况下都为true

配置中心,及注册中心用的是consul,如果instance-id按官网的配置,每次启动都会产生不一样的id,这样项目启动会造成多个无效的实例存在于注册列表中。因此我改用了服务名+ip+port的方案。关于配置,其实有很多细节可以说明的,以后可以慢慢聊

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值