Spring Cloud系列

您所在的位置:网站首页 springcloud数据源配置 Spring Cloud系列

Spring Cloud系列

2023-09-04 15:31| 来源: 网络整理| 查看: 265

前言

Spring Cloud Config为微服务架构提供了配置管理的功能。通过Spring Cloud Config服务端提供配置中心,在各个微服务应用的客户端读取来自服务端配置中心的配置项。配置中心的数据源可以来自git、svn、数据库、操作系统的本地文件、jar包中的文件、vault、组合

EnvironmentRepository接口

在这里插入图片描述 可以看到上图有对应的类负责存储配置中心的配置数据。而对于接口EnvironmentRepository只提供了一个方法findOne,通过传入application、profile和label来获得配置项。 在这里插入图片描述

EnvironmentRepositoryProperties

在这里插入图片描述 Spring Cloud Config有许多的配置方式,如果想查看有哪些配置参数,可以直接查询相应的接口EnvironmentRepositoryProperties的实现类。

Native

这里可以使用系统的文件路径,也可以使用jar中的配置文件,bootstrap.yml配置如下:

spring: profiles: native cloud: config: server: native: search-locations: classpath:/config/ # search-locations: file:/config/

如果使用的是classpath,就会使用jar里的配置。如果使用的是file,就会使用操作系统的文件路径。 jar时可以添加下面的application.yml指定所有的配置。client-dev.yml是我的一个微服务应用client的配置文件,dev指的是profile 在这里插入图片描述 这里需要注意的是,native方式只能单独使用,不能组合使用。原因是类NativeRepositoryConfiguration加了限制条件。一旦提供了别的EnvironmentRepository,这个就不生效了 在这里插入图片描述

接着可以访问Spring cloud config的站点,查看配置项 在这里插入图片描述

git

git是比较常见用来存储配置项的方式,数据源可以来自github,也可以使用自己抢建私有的git服务器。在resources目录下,添加bootstrap.yml文件,具体配置如下:

spring: profiles: git cloud: config: server: git: uri: https://github.com/repository/springcloud_demo_config.git username: username password: password

然后在你的git项目中添加文件application.yml配置文件,填入你的配置项目 在这里插入图片描述

数据库

这里作为存储配置项的数据库,只能使用支持Jdbc的关系型数据库。使用数据之前需要先引入jdbc和数据驱动的包。如果你使用的maven,可以添加下面配置。

org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java ${mysql.connector.version}

添加spring-boot-start-jdbc包的原因是,在JdbcRepositoryConfiguration类中会判断是否存在JdbcTemplate类。如果不引入Jdbcqn,那么配置就不会生效 在这里插入图片描述 同样添加配置文件bootstrap.yml,具体配置如下:

spring: profiles: jdbc cloud: config: server: jdbc: sql: SELECT KEY, VALUE from PROPERTIES where APPLICATION=? and PROFILE=? and LABEL=? datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123456 url: jdbc:mysql://localhost:3306/new_platform?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false

这里需要你的数据库配置,并在数据库中添加一张数据库表。至于数据表的结构,大家可以从配置文件中是sql语句中看出。当配置中心读取配置项时,会传入相应的where条件参数,进行sql查询,返回给客户端。有兴趣的要以看看JdbcEnvironmentRepository类的findOne方法。 在这里插入图片描述 读取你的bootstrap.yml文件的配置,可以参考源码JdbcEnvironmentProperties 在这里插入图片描述

组合

如果你理解了上面的配置方式,下面的组就很简单了。只是多了一个order的配置,用于读取数据源的顺序。

spring: active: composite cloud: config: server: composite: - type: jdbc sql: SELECT KEY, VALUE from PROPERTIES where APPLICATION=? and PROFILE=? and LABEL=? order: 0 - type: native search-locations: classpath:/config/ order: 1 datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123456 url: jdbc:mysql://localhost:3306/new_platform?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false 其它

配置方式除了以上几种,还有vault、redis、CredHub,技术上不难,我也没试过,有兴趣的可以查看官方文档。另外,你也可以自己实现Spring Cloud Config自己实现个性化的配置方式。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3