Spring Boot(二)之搭建spring cloud config配置中心
Spring Boot官网:点击打开链接
Spring Cloud官网:点击打开链接
Spring Cloud Config官网 : 点击打开链接
上一篇是SpringBoot入门,这篇就是干货结合springcloud的介绍了,在学习搭建之前我觉着有必要先看看这三个网址,相信我,这对你接下来的学习会很有帮助。
(一)背景知识
(1)Spring Cloud Config简介
这个是Spring Cloud Config官网上面对Config的介绍
Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。借助Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念与Spring Environment
和PropertySource
抽象,因此它们非常适合Spring应用程序,但可以与任何运行在任何语言的应用程序一起使用。随着应用程序从开发到测试转移到部署管道中,您可以管理这些环境之间的配置,并确保应用程序具有在迁移时所需运行的所有内容。服务器存储后端的默认实现使用git,因此它可以轻松支持配置环境的标签版本,并且可以用于管理内容的各种工具。使用Spring配置很容易添加替代实现并将其插入。
(2)Spring Cloud Config特点
- HTTP,用于外部配置的资源API(名称 - 值对或同等YAML内容)
- 加密和解密属性值(对称或不对称)
- 使用可轻松嵌入Spring Boot应用程序
@EnableConfigServer
配置客户端功能(针对Spring应用程序):
- 绑定到配置服务器并
Environment
使用远程属性来初始化Spring - 加密和解密属性值(对称或不对称)
(二)搭建spring cloud config 服务器端
一、新建一个Maven项目
由于我的项目是在以前的所写的项目的基础上建立的,所以我这里只是新建了一个子module项目。
在父项目上右键选择New Module新建一个Maven子项目。
输入ArtifactId信息
下一步,输入项目名,选择项目存放目录,点击Finish既可创建完成
创建完成
创建完成后,这个时候pom.xml文件里面什么依赖都没有。
二、我们需要添加开启spring cloud config相关的依赖
<?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">
<parent>
<artifactId>spring-cloud-demo</artifactId>
<groupId>spring-cloud-demo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>spring-cloud-config-server</artifactId>
<!-- 由于下面有spring cloud版本控制,所以在这里不再添加config-server依赖的版本号 -->
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies> <!-- 引入spring cloud组件统一版本控制 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement></project>三、依赖添加完成后,创建一个启动类,启动类上需要添加一个注解: @EnableConfigServer
在resources文件里面,新建一个bootstrap.yml文件
bootstrap.yml填写配置信息
server:
port: 8888
spring:
application:
name: spring-cloud-config-server
cloud:
config:
server:
git:
uri: https://github.com/hahaxiaowei/config-repo.git
search-paths: config-repo
Spring Cloud config配置信息讲解
Spring Cloud Config Server从git仓库(必须提供)中为远程客户端提取配置,所以在这里我们需要配置上你的git远程仓库,我的远程仓库放在了github上面了。所以我这边就把远程仓库的github地址写了上去。
search-paths:属性表示搜索,如果你的仓库中有很多子文件,那么为了让config快速搜索到配置信息的存放目录,你就可以指定搜索文件名,因为我这里就一个文件名,所以我在这里写仓库名了。
四、运行启动类。
正常启动了,好了,现在服务器端的搭建已经完成,接下来我们开始搭建客户端,也就是我们怎么从远程读取我们客户端的配置信息。
(三)搭建spring cloud config 客户端
一、新建一个Maven项目:spring-cloud-config-client,作为客户端
创建过程如上,在这里不再赘述
创建好之后,如下图
二、启动类
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* Created by sunwei on 2018-03-09 Time:16:15:30
*/
@SpringBootApplication
@EnableDiscoveryClient
public class SpringCloudCofigClientApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudCofigClientApplication.class,args);
System.out.println("SpringCloudCofigClientApplication begins starts");
}
}
三、bootstrap.yml
spring:
cloud:
config:
name: spring-cloud-config-client
profile: dev
uri: http://10.3.99.29:8888
label: master
四、属性讲解
HTTP服务具有以下形式的资源:
/ {应用} / {轮廓} [/ {标号}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties上面是官方文档上面讲解
name:就是你在远程仓库的yml文件名
profile:**的剖面,比如spring.profiles.active = dev
label:git资源的label 默认是master
由于是从远程获取的配置信息,所以我们需要把配置信息放到远程仓库里面,文件名字为:spring-cloud-config-client-dev.yml
创建完成
五、为了测试spring cofig server能不能用,我们运行spring-cloud-config-server项目,然后,我们可以在浏览器器中输入
http://10.3.99.29:8888/spring-cloud-config-client-dev.yml
如果你能看到上图的配置信息,说明服务器端这边是正常的,即使客户端出错你也可以排除是服务器端出错。
六、启动客户端
可以看到启动时,是从服务器端获取的配置信息。
最终启动完成,我们可以看到端口号7777就是我们再远程仓库里面,配置的信息。
好了,到这里客户端的使用也完成了。
具体项目可以查看我的github: 点击打开链接
推荐阅读
-
Spring Cloud Config 配置中心实践过程中,你需要了解这些细节!
-
跟我学SpringCloud | 第七篇:Spring Cloud Config 配置中心高可用和refresh
-
spring cloud config 配置中心快速实现过程解析
-
spring cloud 入门系列七:基于Git存储的分布式配置中心--Spring Cloud Config
-
Spring Cloud 之分布式配置中心--Config
-
SpringCloud学习笔记(7):使用Spring Cloud Config配置中心
-
使用Spring Cloud Config搭建配置中心
-
使用Spring Cloud Config搭建配置中心
-
Spring Boot(二)之搭建spring cloud config配置中心
-
spring cloud alibaba之nacos配置中心