文档章节

Spring Cloud组件Config Server 使用数据库作为配置库

无星夜
 无星夜
发布于 2018/07/14 20:31
字数 571
阅读 320
收藏 0

Spring Cloud的配置服务器config server一般使用git,svn版本管理系统或者本地文件系统作为配置库。Edgware版本新增数据库作为配置库,这边总结了项目实施的具体过程与遇到的一些问题。

  • 项目结构如下 - parent -- zuul -- eureka -- config server -- service-a -- service-b
  • pom依赖 org.springframework.cloud spring-cloud-config-server org.springframework.cloud spring-cloud-starter-config org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java

org.springframework.boot spring-boot-starter-actuator

  • 数据库新增配置数据表 properties,使用配置项+配置值+应用名称+配置环境+分支作为联合主键: DROP TABLE IF EXISTS `properties`; CREATE TABLE `properties` ( `akey` varchar(128) NOT NULL, `avalue` varchar(512) NOT NULL, `application` varchar(64) NOT NULL COMMENT '应用名称', `profile` varchar(64) NOT NULL COMMENT '配置环境', `label` varchar(64) NOT NULL COMMENT '分支', PRIMARY KEY (`akey`,`avalue`,`application`,`profile`,`label`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • config server模块application.properties文件 spring.application.name=config server.port={port} # management.security.enabled=false spring.profiles.active=jdbc spring.cloud.config.server.jdbc.sql=select `aKey`, `avalue` from config_properties where\(application=? or application = 'common') and profile=? and label = ? # datasource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://{ip}:{port}/{db} spring.datasource.username:{username} spring.datasource.password:{password} # eureka.client.serviceUrl.defaultZone={eureka uri}
  • service-a 模块bootstrap.properties文件 spring.application.name=service-a server.port={port} spring.cloud.config.uri={config server uri} spring.cloud.config.profile={profile} spring.cloud.config.label={label} management.security.enabled=false
  • 配置加载说明 select `aKey`, `avalue` from config_properties where (application=? or \ application = 'common') and profile=? and label = ? 项目数据库配置表中application=common的为公共配置,存放数据源,redis连接等公共配置,所以配置加载sql语句定义为取common和微服务模块自定义配置的合集; 微服务模块要覆盖某个配置,比如common中有ftp.path=a的配置,目前测试在service-a中配置ftp.path=b,重新加载后可以生效;没有查看实现原理,建议微服务模块不要与公共配置有重复配置项。
  • 常用操作 重载配置,需配合Bean类上的@RefreshScope注解使用,原理:销毁带@RefreshScope注解的Bean然后重新使用该Bean时再创建,根据原理需要注意加@RefreshScope注解的位置; http://{service-a ip}:{service-a port}/refresh 查看当前配置: http://{service-a ip}:{service-a port}/env

© 著作权归作者所有

无星夜
粉丝 1
博文 7
码字总数 1322
作品 0
盐城
私信 提问
加载中

评论(0)

微服务java_b2b商城系统_java商城源码100%开源适合2次开发 (二): 配置管理

使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任...

2019/02/15
0
0
基于springCloud的分布式架构体系

Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cloud在微服务...

Idea
2019/03/13
58
0
从架构演进的角度聊聊 Spring Cloud 都做了些什么?

引用 作者:纯洁的微笑 Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题...

xixingzhe
2017/11/02
154
0
Spring Cloud 微服务的那点事

在详细的了解SpringCloud中所使用的各个组件之前,我们先了解下微服务框架的前世今生。 单体架构 在网站开发的前期,项目面临的流量相对较少,单一应用可以实现我们所需要的功能,从而减少开...

我是你大哥
2018/09/21
67
0
SpringCloud 基础教程(四)-配置中心入门

   我的博客:程序员笑笑生,欢迎浏览博客!    上一章 SpringCloud基础教程(三)-Eureka进阶当中,我们在对Eureka的有了基本的基础认识之上,深入的了解Eureka高可用集群和其他的生产环境中...

程序员笑笑生
01/28
33
0

没有更多内容

加载失败,请刷新页面

加载更多

host machine and virtual machine communication between the three kinds of connection

1.桥接birdge模式 将虚拟机IP与物理机IP设在一个网段上,此时虚拟机相当于一台网络中与本地物理机公用一个HUB的独立设备。网络中其他机器与虚拟机、本地物理机与虚拟机都可以双向通信。虚拟机...

欣欣向荣666
31分钟前
24
0
Centos7安装gitblit

Gitblit介绍 Gitblit是一款开源工具,使用Java编写,用于管理、查看及服务于Git版本库。 Gitblit两种安装包 Gitblit GO:内部集成了Jetty服务器,不需要再集成其他容器,使用简单方便。(本文...

yhb890430
37分钟前
39
0
Ubuntu 安装 Source Code Pro 字体

1、解压字体 $ tar -zxvf source-code-pro-2.030R-ro-1.050R-it.tar.gz 2、解压字体 $ sudo cp -r source-code-pro-2.030R-ro-1.050R-it/TTF/ /usr/share/fonts/truetype/source-code-pro......

张小渔
38分钟前
53
0
mongo Authentication failed记录

虽然用的管理员账号,但是还是出现了以下的错误: 主要看后面的错误信息: { "ok" : 0.0, "errmsg" : "Authentication failed.", "code" : 18, "codeName" : "AuthenticationFailed" } 在想管......

woshixin
50分钟前
70
0
PHP+jPaginate插件制作无刷新分页实例

jPaginate是一款动感滚动分页插件,它的表现形式是像分页的按钮一样,有意思的是这些按钮却可以左右滚动,可以通过单击或鼠标滑向点两侧的小箭头来控制按钮的左右滚动。 读取第一页数据: <d...

ymkjs1990
54分钟前
71
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部