51Testing软件测试论坛

标题: springCloud微服务系列——配置中心第一篇——配置管理策略 [打印本页]

作者: 草帽路飞UU    时间: 2019-2-11 16:45
标题: springCloud微服务系列——配置中心第一篇——配置管理策略
策略
springCloud给我们提供了一套管理配置的技术方案,我们需要有自己的管理思路,才能很好的实现配置的管理。


不同的项目
我们这里采用的是github进行配置文件的存放,服务启动的时候,通过配置中心服务,将相应的配置文件拉回到本地服务。接下来讨论一下配置文件的细节,首先我们所有的配置文件肯定是在一个git仓库中,这是一个大前提。然后我们可能会有很多的项目,每个项目有很多的服务,它们拥有不同的配置文件。为了区分项目,我们可以在git仓库的根目录下,建立多个文件夹,每个文件夹用项目名命名

[attach]121642[/attach]

为了能找到相应项目文件夹,我们需要在配置中心服务中配置searchPaths
  1. spring:
  2.   application:
  3.     name: config-server
  4.   cloud:
  5.     config:
  6.       server:
  7.        git:
  8.         uri: https://github.com/wulinfeng2/serverConfig
  9.         searchPaths: aciv-cf
  10.         clone-on-start: true
  11.         force-pull: true
复制代码

配置文件复用

我们把该项目需要的配置全部放到相应的项目文件夹中,为了复用,我们可以进行比较细粒度的分类,比如关系数据库的配置文件,内存数据库的配置文件,消息队列的配置文件等,通过{描述}-{环境}.yml的命名方式进行区分配置文件类型和环境。

[attach]121643[/attach]


客户端通过配置name加载所需要的配置文件,在name中不需要指定环境信息,环境会根据profile的配置自动选择

  1. spring:   
  2.   profiles:
  3.     active:
  4.     - dev
  5.   cloud:
  6.     config:
  7.       uri: http://192.168.2.104:8868
  8.       name: authentication,eureka,user-db,redis,cache
  9.       label: master
  10.       failFast: true
  11.       retry:
  12.         max-attempts: 6
复制代码


版本管理

我们可以加入版本控制,将软件的版本和配置文件的版本关联起来。做法也很简单,使用github的label作为版本号,比如之前的例子,label为master,我们也可以制作诸如V1.0.0,V2.0.0这样的label来区分版本







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2