Spring Cloud Config 配置中心选用Svn作为配置仓库(一)

由于卓望公司使用的代码版本控制工具用的SVN作为代码仓库,恰巧git本人没用过。

所以,就想聊聊svn作为spring cloud config配置中心的仓库那点事...

在分布式系统中,会有很多个微服务,并且微服务可能是Ha,如此,修改配置文件给我们带来了很多时间成本的开销,故spring cloud config解决了这个问题,只要我们修改配置仓库的文件,就能很好的修改配置文件的参数,特别简单易用。

Spring Cloud Config 简介:

Spring Cloud Config 支持配置文件放在远程仓库中,例如 Git、SVN,也可以挂载到本地。spring cloud config 分为server、client端。

spring cloud config server端:

新建一个springcloud config server项目:

首先,从pom文件开始吧:引入依赖

主要引入如图中的2个依赖jar包,config-server标志服务作为config server服务,svnkit标识svn作为配置仓库。SVNKit (JavaSVN)是一个纯Java的SVN客户端库,使用 SVNKit无需安装任何SVN的客户端,支持各种操作系统。这不是一个开源的类库,但你可以免费使用。通过SVNKit,你可以在SVN上开发出自己的应用。

配置文件application.properties

这里要注意的是要使用svn作为配置中心,必须显示声明spring.profiles.active=subversion,不然还是用的git,svn默认的lable是trunk,git默认的是master,客户端在使用的时候注意指定label,这里search-paths使用了{application}占位符,用来根据客户端的spring.application.name来动态搜索配置目录,即按照每个应用一个配置目录的形式来组织配置。

如上这个图中比较重要的就是svn 配置仓库的配置了。

最后看一下,启动类:

@EnableConfigServer:将该服务作为一个config server服务启动

启动服务,验证config server服务是否可用:访问 http://10.2.8.42:1112/efficiency-basicdata-service-dev.properties

这里要注意的是要使用svn作为配置中心,必须显示声明spring.profiles.active=subversion,不然还是用的git,svn默认的lable是trunk,git默认的是master,客户端在使用的时候注意指定label,这里search-paths使用了{application}占位符,用来根据客户端的spring.application.name来动态搜索配置目录,即按照每个应用一个配置目录的形式来组织配置。

完美显示,无问题.

spring cloud config client服务端:

客户端也引入了eureka依赖,由于客户端直接从config-server上获取配置而不是从svn上获取,所以不需要引入svnkit依赖

POM文件内容:

高可用配置中心是通过服务id去自动发现config-server服务地址的,所以不用配置spring.cloud.config.uri指向具体的地址了,直接通过spring.cloud.config.discovery.service-id来指定config server的服务名,这里是config-server,同时需要将spring.cloud.config.discovery.enable=true(默认为false,使用uri方式),声明通过服务发现的方式来获取config server地址。

为了能动态刷新配置,需要在允许动态刷新的类上注解@RefreshScope,这里我们定义了一个变量from,值是通过@Value("${from}")注解从配置中获取的值自动注入的,也可以从Environment中获取

 

修改配置文件内容提交,刷新配置文件,取到最新值:

 

首先查询config client客户端查询hello的值:http://10.2.8.42:2010/hello

修改svn文件:

通过访问spring cloud config server端发现,已经修改过来了:http://10.2.8.42:1112/efficiency-basicdata-service-dev.properties

通过接口访问客户端:http://10.2.8.42:2010/hello  发现并没有刷新,这时我们需要手动刷新一下:http://10.2.8.42:2010/refresh

然后再访问一下客户端,发现属性值已经改成正确的了。

 

 

朋友们,我不是特别会写博客,整个过程中遇到的坑都没有写出来,是不知道如何写,怎样写??????

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值