spring-cloud-config 配置中心实现
Spring Cloud Config 用于为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,分为server端和client端。
server端为分布式配置中心,是一个独立的微服务应用;client端为分布式系统中的基础设置或微服务应用,通过指定配置中心来管理相关的配置。
Spring Cloud Config 构建的配置中心,除了适用于 Spring 构建的应用外,也可以在任何其他语言构建的应用中使用。
Spring Cloud Config 默认采用 Git 存储配置信息,支持对配置信息的版本管理。
本示例主要内容
Spring Cloud Config 特点
代码构建
server端实现
1.pom.xml添加maven依赖
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies>
2.application.yml配置
server: port: 8001 spring: application: name: cloud-config-server cloud: config: server: git: uri: https://gitee.com/tqlin/spring-boot-demo.git #因为github有时候不稳定,我这里改到了码云仓 searchPaths: /cloud-config/config-repo/ #配置文件目录 force-pull: true
3.CloudConfigServerApplication.java启动类
@EnableConfigServer @SpringBootApplication public class CloudConfigServerApplication { public static void main(String[] args) { SpringApplication.run(CloudConfigServerApplication.class, args); } }
client端实现
1.pom.xml添加maven依赖
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-html" target="_blank">web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
2.bootstrap.properties配置文件
spring.cloud.config.name=easy-config spring.cloud.config.profile=test spring.cloud.config.uri=http://localhost:8001/ spring.cloud.config.label=master
特别注意:Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。
这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖。
3.application.properties配置文件
spring.application.name=cloud-config-client server.port=8002
运行示例
1.首先在码云上面创建一个文件夹config-repo用来存放配置文件,我们创建以下三个配置文件:
// 开发环境 easy-config-dev.properties 内容为:easy.hello=dev config // 测试环境 easy-config-test.properties 内容为:easy.hello=test config // 生产环境 easy-config-pro.properties 内容为:easy.hello=pro config
根据上面构建的代码指定的项目地址为:https://gitee.com/tqlin/spring-boot-demo.git 目录为: /cloud-config/config-repo/
2.分别运行server端和client端
找到CloudConfigServerApplication.java、CloudConfigClientApplication.java分别运行
3.测试server端
直接访问:http://localhost:8001/easy-config/dev
我们看到成功返回了开发配置文件信息
{ name: "easy-config", profiles: [ "dev" ], label: null, version: "6053b4c1c2343ac27e822b2a9b60c6343be72f96", state: null, propertySources: [ { name: "https://gitee.com/tqlin/spring-boot-demo.git/cloud-config/config-repo/easy-config-dev.properties", source: { easy.hello: "dev config" } } ] }
访问:http://localhost:8001/easy-config/test、http://localhost:8001/easy-config/pro,相应的会返回测试及正式环境的配置
仓库中的配置文件会被转换成web接口,访问可以参照以下的规则:
以easy-config-dev.properties为例子,它的application是easy-config,profile是dev。client会根据填写的参数来选择读取对应的配置。
4.测试client端
访问:http://localhost:8002/hello 我们发现界面成功返回了 test config,说明测试配置文件client端读取成功了
我们修改bootstrap.properties配置的spring.cloud.config.profile的值为dev,重启client端,访问:http://localhost:8002/hello 这时候界面返回 dev config,表示开发配置访问成功。
资料
Spring Cloud Config 示例源码
官网文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Python环境配置实现pip加速过程解析,包括了Python环境配置实现pip加速过程解析的使用技巧和注意事项,需要的朋友参考一下 背景 学习 Python 的话,仅掌握标准库是远不够的,有很多好用的第三方库我们也需要用到的,比如,由鼎鼎大名的 K 神开发的爬虫必不可少的 requests 库,一般都是必装的库吧。安装第三方库当然还是用 pip 命令安装最方便了。 但是,大家发现
本文向大家介绍Django nginx配置实现过程详解,包括了Django nginx配置实现过程详解的使用技巧和注意事项,需要的朋友参考一下 django 在引入第三方模块的时候保证服务的高可用,要设立一个备份接口,当主接口宕机时可以设置一个超市参数来使用备份的接口。 nginx 反向代理器,网站服务器,负载均衡 基本命令 sudo nginx启动 sudo nginx -s stop sudo
该章节用于帮助用户快速配置 云联壹云 环境. 初次使用时,请按照本章节的步骤进行配置 云联壹云 平台来管理多云环境。 配置云账号 配置认证源 配置项目和用户 当完成上面的配置后,您可以在 云联壹云 平台管理多云资源,如查看监控信息、查看费用分析、在项目中创建资源等。更多功能介绍,请参考主要功能。 配置云账号 该章节用于帮助用户配置云账号,纳管云平台。 配置认证源 该章节用于帮助用户配置认证源并支持
本文向大家介绍MyBatis动态SQL实现配置过程解析,包括了MyBatis动态SQL实现配置过程解析的使用技巧和注意事项,需要的朋友参考一下 动态SQL 什么是动态SQL: 动态SQL就是根据不同的条件生成不同的SQL语句 if choose(when,otherwise) trim(where,set) foreach 1、搭建环境 建表 创建一个基础工程 导包 编写配置文件 编写实体类
Seata 可以支持多个第三方配置中心,那么 Seata 是如何同时兼容那么多个配置中心的呢?下面我给大家详细介绍下 Seata 配置中心的实现原理。 配置中心属性加载 在 Seata 配置中心,有两个默认的配置文件: file.conf 是默认的配置属性,registry.conf 主要存储第三方注册中心与配置中心的信息,主要有两大块: registry { # file 、nacos 、e
本文向大家介绍Win10配置redis服务实现过程详解,包括了Win10配置redis服务实现过程详解的使用技巧和注意事项,需要的朋友参考一下 一,Windows安装: 下载地址:https://github.com/MicrosoftArchive/redis/releases/tag/win-3.2.100 (redis官网没有window版本所以需要在github上下载); 装Redis-x