时间:2021-05-19
在前面的博客中,我们都是将配置文件放在各自的服务中,但是这样做有一个缺点,一旦配置修改了,那么我们就必须停机,然后修改配置文件后再进行上线,服务少的话,这样做还无可厚非,但是如果是成百上千的服务了,这个时候,就需要用到分布式的配置管理了。而spring cloud config正是用来解决这个问题而生的。下面就结合gitlab来实现分布式配置中心的搭建。spring cloud config配置中心由server端和client端组成,
前提:在gitlab中的工程下新建一个配置文件configserver-dev.properties
一、配置Server
1、添加依赖
2、在Application主类开启支持
@EnableConfigServer3、配置application.yml文件
server: port: 8888 spring: application: name: config cloud: config: server: git: uri: https://gitlab.xxx.com/xxxxx/xxxxx.git # 配置gitlab仓库的地址,注意,此处必须以.git结尾 search-paths: /config-repo # gitlab仓库地址下的相对地址,可以配置多个,用,分割。 username: your username # gitlab仓库的账号 password: your password # gitlab仓库的密码注意:如果配置文件放置在Git存储库的根目录下,则无需使用searchPaths参数,本例中的配置文件在config-repo目录中,因此使用searchPaths参数提示Config服务器搜索config-repo子目录
4、启动server,并在浏览器输入http://localhost:8888/configserver/dev/master
{ "name": "configserver", "profiles": [ "dev" ], "label": "master", "version": "073cda9ce85a3eed00e406f4ebcc4651ee4d9b19", "state": null, "propertySources": [ { "name": "https://gitlab.xxx.com/xxxxx/xxxxx/project/config-repo/configserver.properties", "source": { "name": "chhliuxyh", "hello": "i'm the king of the world!!!", "profile": "profile-default" } } ] }可以看到server端已经可以从gitlab上读取到配置文件了。可以通过如下表单中的方式访问gitlab上的资源
/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties例如在浏览器中输入:http://localhost:8888/configserver-dev.yml,结果如下:
hello: i'm the king of the world!!! name: chhliuxyh profile: profile-default二、配置客户端
1、添加pom依赖
2、配置bootstrap.yml文件
注意:此处的配置文件需要放在bootstrap.properties或者是bootstrap.yml文件中,因为config的相关配置会先于application.properties,而bootstrap.properties的加载也是先于application.properties
3、验证客户端
在客户端新增一个Controller
在浏览器中访问:http://localhost:8889/hello,结果如下:
i'm the king of the world!!!
说明客户端已经可以从服务端获取到值了。
三、动态刷新
无需重新启动客户端,即可更新Spring Cloud Config管理的配置
1、更新gitlab仓库中configserver-dev.properties配置文件中hello对应的属性值
2、访问http://localhost:8888/configserver/dev/master,发现server端内容已经更新
3、对Conf客户端发一个POST请求http://localhost:8889/refresh,返回200 OK。再次访问http://localhost:8889/hello,可见在并未重启客户端服务的情况下,读到的属性值已经动态更新
PS:要想实现动态刷新,需要在pom文件中添加以下starter
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件:spring-cloud-config,它支持配置服务
spring-cloud-config配置中心实现SpringCloudConfig用于为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,分为ser
背景:Springcloud项目使用Springcloud-config作为分布式配置,配置参数都放在config里,不同的环境有不同的问题:项目本地:boos
之前写过一篇博客《Spring+Mybatis+Mysql搭建分布式数据库访问框架》描述如何通过Spring+Mybatis配置动态数据源访问多个数据库。但是之
什么是NacosConfig在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。SpringCloudAlib