SC ConfigServer配置存储改为MySQL或其他数据库

SC ConfigServer配置存储改为MySQL或其他数据库

SpringCloud的ConfigServer默认是持久化使用的是git。git有它天然的优势,比如多版本管理、分支管理、提交审核策略等等,但是如果相对其中存储的数据做细粒度的权限控制,就力不从心了。当然,也可以改变使用方式以适应这种特点,但是今天我们要做的是将持久化从git迁移到MySQL上。

查询配置信息

ConfigServer有个接口:org.springframework.cloud.config.server.environment.EnvironmentRepository
这个接口的实现类就是ConfigServer的用来查询配置信息的,方法签名如下:

Environment findOne(String application, String profile, String label);

我们可以仿照已有的实现去自行实现这个接口,在方法实现中查询MySQL
查询实现大致如下:
SC ConfigServer配置存储改为MySQL或其他数据库_第1张图片

后端存储配置设计

后端存储采用SpringData + JPA + JPA 的方式,故在此仅介绍实体
因为Spring Cloud Config组件支持application + profile + label 的方式查询配置文件,所以进行沿用,基本能满足生产所需:
SC ConfigServer配置存储改为MySQL或其他数据库_第2张图片

使用说明

  1. pom.xml中添加该插件依赖
    插件依赖
  2. pom.xml中添加MySQL或其他数据库驱动的依赖(该插件依赖于DB)
  3. 在Config Server组件的application.xml中添加如下两个配置
    SC ConfigServer配置存储改为MySQL或其他数据库_第3张图片
    SC ConfigServer配置存储改为MySQL或其他数据库_第4张图片

注意:此处的datasource也可换成任意支持jpa的数据源

源码地址

http://git.oschina.net/AngryBear12/plugin-spring-cloud

你可能感兴趣的:(Spring,Cloud)