一、背景
随着时间的推移,以往的单点部署项目,渐渐的转变为多点,分布式集群部署。接踵而来的是配置文件的凌乱部署,某一个基础服务的配置变更,都将造成服务的重新部署。
二、概述
Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。很容易添加替代实现,并使用Spring配置将其插入。
三、特点
Spring Cloud Config就是云端存储配置信息的,它具有中心化,版本控制,支持动态更新,平台独立,语言独立等特性。
其特点是:
a.提供服务端和客户端支持
b.集中式管理分布式环境下的应用配置
c.基于Spring环境,无缝与Spring应用集成
d.可用于任何语言开发的程序
e.默认实现基于git仓库,可以进行版本管理
f.可替换自定义实现
四、理解、说明
4.1:服务端Server
拉取配置时,更新git仓库副本,保证了最新的结果数据;
支持了数据结构丰富,yml、json、properties等;
配合Eureka可以实现服务的发现,配合Cloud Bus可以实现消息的推送更新;
配置可以基于SVN、GIT进行版本管理(本章只演示GIT版本工具)。
代码演示:
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo
4.2:客户端Client
client我们只需要指明需要哪个配置文件即可,获取资源方式格式如下:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
解释说明:
{application}映射到客户端的“spring.application.name”;
{profile}映射到客户端上的“spring.profiles.active”(逗号分隔列表);
{label}这是一个服务器端功能,标记“版本”的配置文件集。
五、案例
5.1:在gitHub上新增一个配置项
5.2:配置Server端
结合Eureka做服务的发现与注册
pom.xml配置如下:
5.3:配置服务端文件properties
除了以往的服务注册配置,还有远程配置中心GitHub地址
服务注册
gitHub配置管理
5.4:服务端启动程序入口
5.5:查看是否服务发现
我们可以通过Server启动的mapping映射也可以看出启动的接口服务
说明:
这些接口服务正是获取资源格式类型。
接口访问配置文件:
5.6:客户端配置
pom.xml
服务注册
配置中心
入口程序
接口Controller
说明:如下的启动日志我们可以看出,拉取了配置从配置服务端8888节点;也加载了远程配置文件
启动日志
Eureka服务发现注册中心
5.7:页面访问说明
接口访问
说明:通过接口访问我们可以获取远程配置中心bar的值;那么如果配置中心如果修改了bar的值域,我们将如何获取最新的通知,是重启服务,还是广播通知呢?是的,我们引用Cloud生态圈的另一个组件Spring Cloud Bus消息总线机制获取最新的值,尽请期待!
代码地址:https://github.com/rubenYuan/Spring-Cloud-Samples
PPT:http://download.csdn.net/download/ruben95001/9974839