九、Spring Cloud Config Server详解(一):Config Server基本使用与配置规则详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/makyan/article/details/88753540

九、Config Server

在上面的项目中,每个项目的配置文件都在自己的项目中配置,这样,在生产环境中,会带来很多麻烦,每改动一个配置可能要修改很多个项目, 被修改的项目可能都要重新打包,重新部署。那能不能有一种方法,统一部署Spring Cloud 中的各个微服务的配置呢?这就是Spring Cloud Config。 Spring Cloud Config 是一种用来动态获取Git、SVN、本地的配置文件的一种工具。

9.1.Config Server基本使用

1、创建一个项目,futurecloud-config-server,引入依赖spring-cloud-config-server

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入spring cloud config server依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>

注意: 之前我们一般都是用的各种starter,而这个config server不是spring-cloud-starter-config-server 而是spring-cloud-config-server

2、在spring boot application 主类中添加Config Server的注解@EnableConfigServer,开启Config Server

@SpringBootApplication
@EnableConfigServer
public class FutruecloudConfigServerApplication
{
    public static void main( String[] args )
    {

        SpringApplication.run(FutruecloudConfigServerApplication.class);
    }
}

3、创建一个远程仓库 我使用的是码云,在码云上创建一个仓库,地址为: https://gitee.com/makyan/futurecloud-config

4、配置Config Server,application.yml配置如下:

server:
  port: 11000 #程序启动端口,也就是tomcat的端口
spring:
  application:
    name: futurecloud-config-server #应用名称,别名
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/makyan/futurecloud-config  #git项目的uri
          search-paths: config-v1 #在uri地址下查找的路径名
          #访问仓库的用户名/密码,不配置也能访问
          username: username
          password: password 

5、在gitee的futurecloud-config下创建一个目录(文件夹),config-v1, 在这个下面加入几个测试用的配置文件,这里加上五个测试文件,分别如下:

futurecloud.yml
futurecloud-dev.yml
futurecloud-test.yml
futurecloud-pre.yml
futurecloud-stable.yml
futurecloud-apigetway-zuul.yml

6、启动futurecloud-config-server 项目进行测试

访问:http://localhost:11000/futurecloud-pre.yml , 返回gittee上futurecloud-pre.yml文件的内容,其他配置文件也一样。 访问:http://localhost:11000/futurecloud-apigetway-zuul.yml ,返回如下图所示:
在这里插入图片描述访问默认:http://localhost:11000/futurecloud/default,返回如下图所示:
在这里插入图片描述

9.2.Config Server 配置规则详解

扫描二维码关注公众号,回复: 5644289 查看本文章

在上面,我们用于测试的配置文件:

futurecloud.yml
futurecloud-dev.yml
futurecloud-test.yml
futurecloud-pre.yml
futurecloud-stable.yml
futurecloud-apigetway-zuul.yml

“-”前面的部分可以随便定义,一般我们用应用名来定义,后面的deb、test…也可以随便定义,一般我们用项目所处的环境来命名。 Config 支持我们使用的请求的参数规则为:

/ { 应用名 } / { 环境名 } [ / { 分支名 } ]
/ { 应用名 } - { 环境名 }.yml
/ { 应用名 } - { 环境名 }.properties
/ { 分支名 } / { 应用名 } - { 环境名 }.yml
/ { 分支名 } / { 应用名 } - { 环境名 }.properties

注意:

  • 第一个规则的分支名是可以省略的,默认是master分支
  • 无论你的配置文件是properties,还是yml,只要是应用名+环境名能匹配到这个配置文件,那么就能取到
  • 如果是想直接定位到没有写环境名的默认配置,那么就可以使用default去匹配没有环境名的配置文件
  • 使用第一个规则会匹配到默认配置
  • 如果直接使用应用名来匹配,会出现404错误,此时可以加上分支名匹配到默认配置文件
  • 如果配置文件的命名由很多个-分隔,此时直接使用这个文件名去匹配的话,会出现直接将内容以源配置文件内容直接返回,内容前可能会有默认配置文件的内容。

猜你喜欢

转载自blog.csdn.net/makyan/article/details/88753540