1、简介
在分布式系统中,尤其是当我们的分布式项目越来越多,每个项目都有自己的配置文件,对配置文件的统一管理就成了一种需要,而 Spring Cloud Config 就提供了对各个分布式项目配置文件的统一管理支持。Spring Cloud Config 也叫分布式配置中心,市面上开源的分布式配置中心有很多,比如国内的, 360 的QConf、淘宝的 diamond、百度的 disconf 都是解决分布式系统配置管理问题,国外也有很多开源的配置中心 Apache 的 Apache Commons Configuration、owner、cfg4j 等等。
Spring Cloud Config 是一个解决分布式系统的配置管理方案。它包含 Client和 Server 两个部分,Server 提供配置文件的存储、以接口的形式将配置文件的内容提供出去,Client 通过接口获取数据、并依据此数据初始化自己的应用。
Spring cloud 使用 git 或 svn 存放配置文件,默认情况下使用 git。
基于三个维度
Spring Cloud 的三个维度
优势:配置支持Git,和Spring 无缝集成、设计简单轻量;不足:动态配置能力弱、治理能力比较弱、不算严格企业级。
2、简单使用
构建Spring cloud config配置中心
1、创建一个普通的 Spring Boot 项目
2、在 pom.xml 文件中添加config-server依赖
3、在入口类,也就是 main 方法的类上添加注解 @EnableConfigServer
4、在 application.properties 中配置一下 git 仓库信息,此处我们使用 GitHub( 也可以使用码云 gitee ) 。
接口URL:/{application}/{profile}/{label}
构建Springcloud config配置中心仓库
接下来我们需要在 github 上设置好配置中心,首先在本地创建一个文件夹叫wkcto,然后在里面创建一个文件夹叫 config-center,然后在 config-center中创建四个配置文件。
经过对wkcto目录下的文件进行操作后,最终使用git push 推送到远程仓库,然后启动我们的配置中心,通过/{application}/{profile}/{label}就能访问到我们的配置文件了。
构建Spring cloud config配置中心客户端
1、创建一个普通的 Spring Boot 工程 08-springcloud-config-client,并添加starter-conifd依赖.
2、创建 bootstrap.properties 文件,用于获取配置信息。
name 对应配置文件中的 application 部分,profile 对应了 profile 部分,label 对应了 label 部分,uri 表示配置中心的地址。
然后使用@RefreshScope 进行对配置文件的刷新,接下来就是用Spring自带注解可以获取配置内容。例如@value
3、工作原理
简化架构
实现细节
可以看出支持不同参数不同配置来源。
Config本身不支持动态刷新,为了实现动态刷新,目前可行的解决方案是,搭配Spring Cloud Bus。
动态刷新流程
4、安全
生产环境中我们的配置中心肯定是不能随随便便被人访问的,我们可以加上适当的保护机制,由于微服务是构建在 Spring Boot 之上,所以整合 Spring Security是最方便的方式。
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容