Spring Cloud Config里使用Git作为后端存储来开发ConfigServer

一、准备一个Git仓库

比如GitHub或者Gitee都可以,这边我使用https://gitee.com/791202/spring-cloud-config-repo,这个地址由于涉及隐私,已经修改了。

二、在Git仓库里添加配置文件

例如:

  • deviceservice-foo.properties
  • deviceservice-foo-dev.properties
  • deviceservice-foo-test.properties
  • deviceservice-foo-production.properties

内容分别为:

  • profile=default-1.0
  • profile=dev-1.0
  • profile=test-1.0
  • profile=production-1.0

为了测试版本控制,为该Git仓库创建config-label-v2.0分支,并将各个配置文件中的1.0改为2.0。

三、创建一个新的Maven工程

其中ArtifactId为deviceservice-config-server,并添加如下依赖

四、启动类

注意启动类上的注解@EnableConfigServer,它是用来声明一个Config Server。

五、配置文件application.yml

六、使用Config Server的端点获取配置文件的内容

如上配置都搭建好了,那一个Config Server就算整好了,下面是要获取里面的内容。

端点与配置文件的映射规则

  • /{application}/{profile}[/{label}]
  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties

以上端点都可以映射到{application}-{profile}.properties这个配置文件,{application}表示微服务的名称,{label}对应Git仓库的分支,默认是master。

所以我们可使用如下URL访问到Git仓库master分支的deviceservice-foo-dev.properties。

  • http://localhost:8080/deviceservice-foo/dev
  • http://localhost:8080/deviceservice-foo-dev.properties
  • http://localhost:8080/deviceservice-foo-dev.yml

七、测试

1.访问http://localhost:8080/deviceservice-foo/dev

从结果我们可以直观地看到应用名称、项目profile、Git label、Git version、配置文件URL、配置详情等信息。

2.访问http://localhost:8080/deviceservice-foo-dev.properties

profile:dev-1.0

3.访问http://localhost:8080/config-label-v2.0/deviceservice-foo-dev.properties

profile:dev-2.0

可以看到获得了config-label-v2.0分支中的配置文件。

八、注意

访问http://localhost:8080/deviceservice-foo/dev,结果中类似https://gitee.com/791202/spring-cloud-config-repo/deviceservice-foo-dev.properties的URL并不能访问。这是正常的,因为它并不代表配置文件的实际URL路径,而只是一个标识。

0

发表评论

您的电子邮箱地址不会被公开。