搭建spring cloud config
很久没更新了,因为不是专职研究spring cloud,因此更新速度得看工作强度大不大,每天能抽出的时间不多,如果更新太慢了,并且有小伙伴看的话,请见谅了。
Spring Cloud简介
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等项目。
Spring Cloud Config 配置管理组件
不知道spring cloud之前,本来想自己开发一个配置管理服务器。后来了解到spring cloud,接触到spring cloud config,知道其作为配置管理,可以使用git、svn和本地文件读取的三种方式,结合我们正在使用的git非常好,天生具备了配置修改日志记录、回滚和适合给运维工程师使用的特点。于是果断学习spring cloud config用来作为我们的配置管理服务器。
其优点:1. 能够记录配置文件的change log
2. 能够快速回滚
3. 修改配置后可通知配置使用端更新配置
4. 如果是使用内置tomcat,重启tomcat也是可行的
5. 搭建服务简单快捷
下面简单介绍下如何快速搭建配置服务:
首先是启动类:加上@EnableConfigServer注解
@SpringBootApplication
@EnableConfigServer
public class CloudServerDemoApplication { public static void main(String[] args) {
SpringApplication.run(CloudServerDemoApplication.class, args);
}
}
其次是pom文件的引入:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>your.groupId</groupId>
<artifactId>your.artifactId</artifactId>
<version>your.version</version>
<packaging>war</packaging> <name>cloud-server-demo</name>
<description>Demo project for Spring Boot</description> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<tomcat.version>8.5.5</tomcat.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>
注意点:1. 如果想使用内置tomcat启动,我当前使用的boot版本为1.4.2,其内置tomcat版本为8.5.6, 8.5.6的tomcat有bug,因此要改为8.5.5.
2. 如果想调用/refresh等接口接口,需要引入spring-boot-starter-actuator依赖。如果报404,请先确定是用post请求。
application.properties文件
讲配置之前先说明下git中文件名和git分支对应请求路径
HTTP服务资源的构成:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
application是SpringApplication的spring.config.name,(一般来说'application'是一个常规的Spring Boot应用),profile是一个active的profile(或者逗号分隔的属性列表),label是一个可选的git标签(默认为"master")。这几项值都对应了配置服务消费工程中的配置,后面的文章会讲。
配置服务中最基本的一项配置为指定git:
第一种:(最基础的,指定之后可以使用最简单的配置服务了)
spring.cloud.config.server.git.uri
在正常环境中,配置服务给多个项目提供服务,git中都放一起就会很乱,配置服务提供了几种区分各个项目的配置:
第二种:
spring.cloud.config.server.git.uri: https://github.com/spring-cloud-samples/config-repo
spring.cloud.config.server.git.repos.simple: https://github.com/simple/config-repo
spring.cloud.config.server.git.repos.special.pattern: special*/dev*,*special*/dev*
spring.cloud.config.server.git.repos.special.uri: https://github.com/special/config-repo
spring.cloud.config.server.git.repos.local.pattern: local*
spring.cloud.config.server.git.repos.local.uri: file:/home/configsvc/config-repo
如果 {application}/{profile}不能匹配任何表达式,那么将使用"spring.cloud.config.server.git.uri"对应的值。在上述配置中,对于 "simple" 配置库,匹配模式是simple/* (也就说,无论profile是什么,它只匹配application名称为"simple"应用系统)。"local"库匹配所有application名称以"local"开头任何应用系统,不管profiles是什么(因没有配置对profile的匹配规则,/*后缀会被自动的增加到任何的匹配表达式中 ),special配置库只能匹配profiles为dev*的,大家应该看懂了,simple、special、local可以自己配置。
第三种:
spring.cloud.config.server.git.uri=https://github.com/vincent-ren/spring-boot-profile.git
spring.cloud.config.server.git.searchPaths={application}
git地址是我的真实使用过的地址(可看),配置此项”spring.cloud.config.server.git.searchPaths={application}“,配置客户端获取配置会根据自己设置的的application名去git仓库中根目录下的对应/{application}文件夹去寻找配置。
作为配置服务安全问题一定会很重要。
下篇文章接着说配置服务的安全问题。
搭建spring cloud config的更多相关文章
- SpringCloud实战之初级入门(三)— spring cloud config搭建git配置中心
目录 1.环境介绍 2.配置中心 2.1 创建工程 2.2 修改配置文件 2.3 在github中加入配置文件 2.3 修改启动文件 3. 访问配置中心 1.环境介绍 上一篇文章中,我们介绍了如何利用 ...
- spring cloud config搭建说明例子(四)-补充配置文件
服务端 ConfigServer pom.xml <dependency> <groupId>org.springframework.cloud</groupId> ...
- spring cloud config搭建说明例子(三)-添加actuator
添加心跳 服务端 ConfigServer pom.xml添加actuator包 <dependency> <groupId>org.springframework.cloud ...
- spring cloud config搭建说明例子(二)-添加eureka
添加注册eureka 服务端 ConfigServer pom.xml <dependency> <groupId>org.springframework.cloud</ ...
- Spring Cloud Config(三):基于JDBC搭建配置中心
1.简介 本文主要内容是基于jdbc搭建配置中心,使应用从配置中心读取配置信息并成功注册到注册中心,关于配置信息表结构仅供参考,大家可以根据具体需要进行扩展. 2.Config Server 搭建 2 ...
- Spring Cloud Config(二):基于Git搭建配置中心
1.简述 本文选用Git作为配置仓库,新建两个环境的配置文件夹,dev 和 test,文件夹中分别存放 Config Client 端的配置文件,目录结构如下: ├ ─ ─ dev └ ─ ─ con ...
- Spring Cloud搭建手册(2)——Spring Cloud Config
※在Dalston.SR2版本以后,均不能正常加密,如果必须使用此功能,需要降级到SR1或Camden SR7. 1.首先需要创建一个config-server工程,作为配置中心的服务器,用来与git ...
- Spring Cloud Config 搭建Config 服务
配置中心: open API 配置生效监控 一致性的K-V存储 统一配置的实时推送 配置全局恢复.备份.历史版本 高可用集群 通过config 获取配置,流程: 下面介绍,基于spring cloud ...
- ubuntu14.04 spring cloud config server + gradle搭建
Server端:在eclipse上,创建Java Project项目.自带的src包删掉手动建文件夹.基础的目录文件都创建上 |--ZSpringCloud|--build.gradle|----sr ...
随机推荐
- iPhone全部设备分辨率速查
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...
- 【一天一道LeetCode】#219. Contains Duplicate II
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- Swift基础之:新的访问控制fileprivate和open
(转载的,暂时没有研究过这类语句,有空看看) 在swift 3中新增加了两种访问控制权限 fileprivate和 open.下面将对这两种新增访问控制做详细介绍. fileprivate 在原有的s ...
- JSP标签JSTL(3)--迭代操作
简单点说,<c:forEach>标签的作用就是迭代输出标签内部的内容.它既可以进行固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数. <!--语法使用如下--> ...
- 求解n皇后
要求:在国际象棋上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法 思路:很直观的想法就是在棋盘上一个一个皇后的摆,如果冲突,则摆放在另一个位置,直至 ...
- C# 运行时序列化
一. 序列化与反序列的作用 为什么要有序列化呢,考虑下面这种情况,在WINFORM或者更为方便的WPF工程中,当我们进行UI设计时,可以随意的将一个控件剪切/张贴到另外一个地方.操作方便的背后是什么在 ...
- ffmbc——为广播电视以及专业用途量身定制的FFmpeg
无意中发现了个为广播电视以及专业用途量身定制的FFmpeg.也是开源的,记录之. ffmbc 全称是 FFMedia Broadcast,是个改版的FFmpeg,有如下功能: 创建可以导入Final ...
- 从Perforce到Git的迁移
公司经过多次兼并.收购之后,开发团队使用的工具自然会出现鱼龙混杂的现象.就拿源代码管理工具来说,我们同时在使用的就有Perforce.Team Foundation.Subversion等.为了节省成 ...
- (NO.00002)iOS游戏精灵战争雏形(八)
子弹的初始化工作前2篇基本做好了,下面就是如何射出子弹. 通常来说,子弹射向目标对象,需要走一条直线.直线由2点定位,分别为发射点和目标点. 发射点就是开枪精灵自身的位置,目标点则为敌方精灵的位置,大 ...
- MSM平台RPM
Software Component Block Diagram RPM(Resource Power Manager)是高通MSM平台另外加的一块芯片,虽然与AP芯片打包在一起,但其是一个独立的AR ...