Native本地配置文件简介

在接触微服务的时候就了解到config可以配置集成svn、git、DB、缓存数据库等,同时也支持修改配置无需重新启动等强大功能。

然则,我们的现实是我们是内网,给客户部署的无需svn 、git等,同时热加载配置文件也可以暂时不采用(需要引入其他的组件,对于部署 也就增加的运维时间成本)

                                              怎么办?

觉得应该还有其他的解决方案,搜了下相关资料了解到了一个native本地配置,config也是支持的。

采用它是可行的,开工。

主要解决的问题:

1.配置文件 统一集中配置

2.每个模块的数据库配置、缓存配置 独立出来

3.通用配置独立出来

遇到的问题

客户端无法加载多个配置文件?(放了一段时间后,浏览其他博客的时候 ,解决了)

总结:遇到的暂时解决不了的问题暂且放下,做个标记,之后的工作当中会很轻易的解决掉(把问题搁置),config功能很强大,我们只采用的部分功能,需要能帮助到您。

Config简介

在分布式系统中,每一个功能模块都能拆分成一个独立的服务,一次请求的完成,可能会调用很多个服务协调来完成,为了方便服务配置文件统一管理,更易于部署、维护,所以就需要分布式配置中心组件了,在spring cloud中,有分布式配置中心组件spring cloud config,它支持配置文件放在在配置服务的内存中,也支持放在远程Git仓库里。引入spring cloud config后,我们的外部配置文件就可以集中放置在一个git仓库里,再新建一个config server,用来管理所有的配置文件,维护的时候需要更改配置时,只需要在本地更改后,推送到远程仓库,所有的服务实例都可以通过config server来获取配置文件,这时每个服务实例就相当于配置服务的客户端config client,为了保证系统的稳定,配置服务端config server可以进行集群部署,即使某一个实例,因为某种原因不能提供服务,也还有其他的实例保证服务的继续进行

                                           配置流程如下

1.服务端核心配置

引入相关jar后,配置文件配置:

spring:
  cloud:
    config:
      server:
        native:
          search-locations: classpath:properties/,classpath:properties/provider-model/,
          #username:
          #password:
          #search-paths: test-CONFIG
  application:
    name: config-server
  profiles:
    active: native
#eureka配置
eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:7001/eureka/
  instance:
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}

server:
    port: 7006



目录截图:

需要注意的点:

1.search-locations的用法,指定搜索的目录,更加详细的配置可研究下
2.properties目录是新建立的,配置文件都放在根目录下加载顺序会受到影响 

config是注册到eureka当中的,客户端也需要从配置中心读取相关服务

客户端配置如下:采用的是服务的形式(核心配置如下)

spring:
  application:
    name: provider-order
  cloud:
    config:
      discovery:
        service-id: config-server
        enabled: true
      profile: dev
      name: common,db-mysql,redis,provider-order
      label: master

eureka:
  client: #客户端注册进eureka服务列表内
    service-url:
     defaultZone: http://localhost:7001/eureka/
        #defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}
    prefer-ip-address: true      #访问路径可以显示IP地址







分析:

config:
  discovery:
    service-id:  指定从注册中心读取的服务ID(重点)
profile:指定要读取的配置  如dev、test等

最核心的是name

name: common,db-mysql,redis,provider-order

通过此方式可以引入多个配置文件。

 

结束语:微服务的应用越来越广泛,愿尽绵薄之力帮助大家快速了解微服务架构,感兴趣的的可以关注今日头条 @架构师速成记

 

 

 

 

 



 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐