标签:rgs 本地仓库 style oca 绑定 管理 utf-8 lombok isp
Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以集中管理所有环境中应用程序的外部属性。客户端和服务器上的概念与Spring Environment和PropertySource抽象,因此它们非常适合Spring应用程序,但可以与以任何语言运行的任何应用程序一起使用。当应用程序从开发人员到测试人员进入生产过程进入生产过程时,您可以管理这些环境之间的配置,并确保应用程序具有它们迁移时所需的一切。服务器存储后端的默认实现使用git,因此它轻松支持带标签的配置环境版本,并且可以通过各种工具来访问这些内容来管理内容。添加替代实现并将其插入Spring配置很容易。
优点:
1、Spring Cloud Config Server功能:
2、HTTP,用于外部配置的基于资源的API(名称-值对,或等效的YAML内容)
3、加密和解密属性值(对称或非对称)
4、可轻松地使用Spring Boot应用程序嵌入 @EnableConfigServer
5、Config Client功能(用于Spring应用程序):
6、绑定到Config Server并Environment使用远程属性源初始化Spring
7、加密和解密属性值(对称或非对称)
Spring Cloud Config用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持。
准一个Eureka注册中心,搭建参考:【SpringCloud】快速入门(一)
在Github上准备一个配置中心仓库,如下:
其中config-dev.yml的文件内容如下:
1、新建一个SpringCloud模块springcloud-config-center8888,作为配置中心
2、在pom中,引入spring-cloud-config-server和spring-cloud-starter-netflix-eureka-client依赖
1 <!-- spring cloud config server--> 2 <dependency> 3 <groupId>org.springframework.cloud</groupId> 4 <artifactId>spring-cloud-config-server</artifactId> 5 </dependency> 6 7 <!-- eureka client --> 8 <dependency> 9 <groupId>org.springframework.cloud</groupId> 10 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 11 </dependency>
完整pom文件如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <parent> 6 <artifactId>test-springcloud</artifactId> 7 <groupId>com.test</groupId> 8 <version>1.0-SNAPSHOT</version> 9 </parent> 10 <modelVersion>4.0.0</modelVersion> 11 12 <artifactId>springcloud-config-center8888</artifactId> 13 14 <dependencies> 15 16 <!-- spring cloud config server--> 17 <dependency> 18 <groupId>org.springframework.cloud</groupId> 19 <artifactId>spring-cloud-config-server</artifactId> 20 </dependency> 21 22 <!-- eureka client --> 23 <dependency> 24 <groupId>org.springframework.cloud</groupId> 25 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 26 </dependency> 27 28 <!-- spring boot --> 29 <dependency> 30 <groupId>org.springframework.boot</groupId> 31 <artifactId>spring-boot-starter-web</artifactId> 32 </dependency> 33 <dependency> 34 <groupId>org.springframework.boot</groupId> 35 <artifactId>spring-boot-starter-actuator</artifactId> 36 </dependency> 37 <dependency> 38 <groupId>org.springframework.boot</groupId> 39 <artifactId>spring-boot-devtools</artifactId> 40 <scope>runtime</scope> 41 <optional>true</optional> 42 </dependency> 43 <dependency> 44 <groupId>org.projectlombok</groupId> 45 <artifactId>lombok</artifactId> 46 <optional>true</optional> 47 </dependency> 48 <dependency> 49 <groupId>org.springframework.boot</groupId> 50 <artifactId>spring-boot-starter-test</artifactId> 51 <scope>test</scope> 52 </dependency> 53 54 </dependencies> 55 </project>
3、编辑application.yml配置文件
1 # 端口 2 server: 3 port: 8888 4 5 spring: 6 application: 7 name: cloud-config-conter 8 cloud: 9 config: 10 server: 11 git: 12 # git仓库地址 13 uri: https://github.com/xxxx/springcloud-config.git 14 username: xxxx 15 password: 123456 16 # 跳过SSL的验证 17 skipSslValidation: true 18 # 查找路径,默认在根路径下,以下写法表示在更目录下以及folder目录下查找文件 19 searchPaths: folder 20 21 eureka: 22 client: 23 service-url: 24 defaultZone: http://localhost:8761/eureka
4、编辑主启动类,并使用@EnableConfigServer激活配置中心服务端
1 // 激活配置中心 2 @EnableConfigServer 3 @SpringBootApplication 4 public class ConfigCenterMain8888 { 5 public static void main(String[] args) { 6 SpringApplication.run(ConfigCenterMain8888.class, args); 7 } 8 }
5、测试
1)启动测试中心模块
2)访问地址:http://localhost:8888/config-dev.yml,正常获取到git仓库中的文件
3)查看控制台,可以看到文件所在目录
4)进入文件所在目录,使用命令:git branch -a,可以发现目录即是本地git仓库目录(对于上面Spring Cloud Config架构图本地仓库)
5)修改远程git仓库,github上的config-dev.yml文件的内容,改为:
config: info: this is master branch, config-dev.yml, version == 2
6)刷新访问地址:http://localhost:8888/config-dev.yml,查看显示内容
发现,显示的内容也跟着更新了
1、配置读取规则:
/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties
比如可以访问地址:
a、查看test分支上的config-dev.yml文件信息:http://localhost:8888/config/dev/test
b、获取默认(master)分支上的config-dev.yml文件:http://localhost:8888/config-dev.yml
c、获取dev分支上的config-dev.yml文件:http://localhost:8888/dev/config-dev.yml
2、项目application.yml中配置的git属性(searchPaths)
查找路径,默认在根路径下,以下写法表示在更目录下以及folder目录下查找文件
可以在更目录下建一个folder文件夹,然后在folder文件夹建一个config-test.yml文件
访问地址:http://localhost:8888/master/config-test.yml,查看文件事,自动到根路径和folder目录下查找
【SpringCloud】Spring Cloud Config 配置中心(二十)
标签:rgs 本地仓库 style oca 绑定 管理 utf-8 lombok isp
原文地址:https://www.cnblogs.com/h--d/p/12758117.html