spring cloud------搭建github配置中心
在之前我们写配置的时候,很难统一的去管理一些配置,碰到重复的就是复制,导致最后修改的时候特别麻烦,之后陆陆续续出现了好多种管理配置文件的工具,比如携程开源的阿波罗配置中心,以及最近比较火的confd配置中心还有git配置中心,使用配置中心来管理我们的配置文件的好处就是简单明了,配置好统一管理,重复的可以放在一起,增加也很方便。而spring cloud有一套非常方便的管理配置文件的地方他可以兼容这上面的几中配置中心,我们这节就直接使用github来搭建来们的配置中心,其他的配置中心,如果大家有兴趣可以去看看。
首先我们要在git建立一个项目,这个项目可以是public的,要可以是私有的,两者的区别就是一个大家都可以访问,另一个是需要账号密码才能访问的,这个大家就根据项目的需求来建吧,我这边因为是演示,所以直接建立一个public的项目
里面新建几个配置文件,这些配置文件与URL的映射关系如下:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
上面的url会映射{application}-{profile}.properties对应的配置文件,{label}对应git上不同的分支,默认为master。
比如我们的项目的端口是8080,如果我们的配置中心中有个test-dev.properties的文件,那么我们可以直接通过localhost:8080/test/dev就能查看我们这个配置文件的信息了。默认的分支为主分支。
我们建立几个不同的profile,目的是为了区分不同环境下的配置,比如测试、开发、生产等。
这步完成后,我们要建立我们的conf-server的项目了,首先我们建立一个maven 项目,因为我们要依赖于spring cloud的配置,所以我们要这样导包
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
这步完成后,我们需要配置我们的配置文件,其实配置文件也不是很多
如果你建立的私有的话,那么还需要添加你的github的账号和密码,这边我就不写了,这步配置完成后,我们还需要在我们的启动类上面添加@EnableConfigServer这个注解。然后运行这个项目,
我们在git上面建立了一个test-dev的配置文件,我们直接访问localh:8080/test/dev,如果数据能获取到就证明我们服务已经建立完毕,不行的话就要找找哪里出了问题,我们访问后能得到如图所示的
,这个就表示我们已经完毕。没有问题了。
接下来我们要搭建一个项目去读取这个配置中心。这个就相当我们说的服务端,接下来我们就搭建我们的客户端。
首先还是建立一个maven项目,只是这次导入的包和之前的一样,需要引入这个jar
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
或者是
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
然后取写配置文件,因为我们要读取我们之前在配置中心的test-dev这个配置,但是在之前的时候我们要了解一下application配置文件和bootstrap配置文件的区别:
- bootstrap.properties的加载也是先于application.properties。
- 有些conf文件是优先于application,所以有些配置文件是要配置到bootstrap中。
弄清楚后这两个文件后,很明显读取配置中心的配置是要放在bootstrap中的,我们直接看配置文件
spring.cloud.config.profile=dev
spring.cloud.config.label=master
spring.cloud.config.uri=http://localhost:8080/
然后像application的配置文件中可以写端口号和name,但是要记住那么是要和我们配置中心的配置文件的前面要一致,比如我们配置中心的test-dev,那么我们的项目要叫test,则才能读取到配置文件。
application的配置文件为
server.port=8081
spring.application.name=test
设置完毕后,我们可以直接启动这个项目,但是要保证前面的那个server也在,因为我们这个是读取之前的那个的,我们的controller如下所示
分别启动这两个项目,然后访问localhost:8081/a,能看到如下页面
因为我们github上面的配置是配置a=1的,所以我们读取配置成功。
上一篇: Restlet实战(六)-正确设计资源
下一篇: python——百度文库爬取
推荐阅读
-
利用Spring Cloud Config结合Bus实现分布式配置中心的步骤
-
spring-cloud入门之spring-cloud-config(配置中心)
-
SpringCloud之分布式配置中心Spring Cloud Config高可用配置实例代码
-
详解spring cloud config整合gitlab搭建分布式的配置中心
-
spring cloud config分布式配置中心的高可用问题
-
Spring Cloud微服务架构的构建:分布式配置中心(加密解密功能)
-
Spring boot外部配置(配置中心化)详解
-
SpringCloud用Zookeeper搭建配置中心的方法
-
spring cloud config 配置中心快速实现过程解析
-
跟我学SpringCloud | 第六篇:Spring Cloud Config Github配置中心