【Spring Cloud总结】32.编写Config Server

接上篇《31.Spring Cloud Config简介》  Spring Cloud版本为Finchley.SR2版

上一篇我们了解了Spring Cloud的统一配置管理(Spring Cloud Config)的基础知识和组件介绍,本篇我们就来编写Spring Cloud Config的服务端。
本部分官方文档:https://cloud.spring.io/spring-cloud-static/Finchley.SR4/single/spring-cloud.html#_spring_cloud_config_server
注:好像Finchley.SR2的文档已经挂了,最新的是Finchley.SR4的文档。

我们来回顾一下上一篇Spring Cloud Config的架构图:

通过该图我们知道,Config Client客户端都通过Config Server服务端获取相应环境(dev开发、stage预发布、prod生产)的配置,然后Config Server再从后端存储中(上图为Git)拉取配置参数、属性。

这里我们就来动手编写一个Config Server服务端。

一、新建Config Server服务工程

在工作空间中新建一个名为“microserver-config-server”的Maven工程:

然后在POM文件中引入Spring Cloud的父工程、config-server的依赖:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>microserver-config-server</artifactId>
  <name>microserver-config-server</name>
  
  <parent>
        <groupId>com.microserver.cloud</groupId>
        <artifactId>microserver-spring-cloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
  
  <dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
</dependencies>
  
</project>

注意,这里为了便于版本统一管理,该工程的parent父工程和我们User、Movie工程一样,均依赖于microserver-spring-cloud工程(此父工程统一引入了spring-cloud-dependencies的Finchley.SR2版,这个在前面的章节已经讲过)。

父工程pom.xml的modules中别忘记加入这个新工程(microserver-config-server):

<modules>
    <module>microserver-provider-user</module>
    <module>microserver-consumer-movie</module>
    <module>microserver-discovery-eureka</module>
    <module>microserver-discovery-eureka-high-availability</module>
    <module>microserver-hystrix-dashboard</module>
    <module>microserver-hystrix-dashboard-turbine</module>
    <module>microserver-getaway-zuul</module>
    <module>microserver-file-upload</module>
    <module>microserver-sidecar</module>
    <module>microserver-config-server</module>
</modules>

然后我们新建启动类,在启动类中,添加“@EnableConfigServer”注解,以开启Zuul的代理功能:

package com.microserver.cloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

然后在resource文件夹下创建application.yml,配置一下端口,以及拉取配置的后端存储的uri路径:

server:
  port: 8090
spring:
  cloud:
    config:
      server:
        git:
          uri: file://${user.home}/config-repo

这里的路径一般是远端数据仓库的地址,我们常用版本管理仓库来实现,这里我们就创建一个码云的gitee仓库来作为配置的后端存储。

二、配置远端gitee仓库

这里我们登录码云的网站,注册一个账号,然后进行登录:

登录成功后,点击个人头像左侧的“+”号,选择“新建仓库”:

然后进入仓库创建页面,填写必须字段,进行仓库的创建:

然后我们的测试仓库就创建成功了:

然后点击“克隆/下载”,将git地址复制下来:

这个就是我们仓库的git地址:
https://gitee.com/jackzhucoder/Spring-Cloud-Config-Test.git

然后我们在本地硬盘中创建一个名为“gitee”的文件夹,作为本地仓库,然后下载Git工具(访问:https://git-scm.com/downloads下载即可, ),下载完毕后,打开cmd,输入git --version,如果出现版本号,则证明安装成功:

右键点击生成本地文件夹,选择“git GUI here”使用git的图形化界面:


然后选择上面的克隆已有仓库的选项,然后填写前面我们复制的仓库地址,目标文件夹为D:/gitee/Spring-Cloud-Config-Test:

点击“Clone”后,远程仓库的文件就被拉进来了:

然后我们在D:/gitee/Spring-Cloud-Config-Test下加入dev开发、stage预发布、prod生产的各个application.yml配置文件:

里面的内容分别为:“type: dev”、“type: stage”和“type: prod”。然后回到gui,点击“Rescan”刷新仓库,检测出有变动的文件:

然后选择stage预提交:

然后填写提交信息commit Message,并点击commit提交本地仓库:

然后点击push,将本地仓库信息提交到远程仓库,并按提示输入相关的账号密码:


然后可以看到代码push成功了:

提交成功之后,我们刷新码云的页面,可以看到刚刚的配置文件提交成功:

三、Config Server获取配置信息

此时回到我们的Config Server服务上来,将刚刚配置文件的uri修改为我们新建的gitee仓库:

server:
  port: 8090
spring:
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/jackzhucoder/Spring-Cloud-Config-Test

注:原地址后面的“.git”可以不要。

然后我们直接启动Config Server微服务,来准备访问我们的远端配置。

使用Config Server微服务访问远端配置文件,可以直接通过RESTful风格的URL形式访问,类似为“http://127.0.0.1:8090/+配置”这种形式,有关配置的映射规则,Spring Cloud提供了以下几种方式:

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

上面的{label}为标签 ,{application}为应用标识,{profile}为版本类型。

那么我们刚刚的其中一个application-dev.yml文件,就可以使用下面的路径访问:
http://127.0.0.1:8090/application-dev.yml
访问结果:

另外两个文件信息:


如果有多个分支,可以在文件前面加载分支的标签,如我们的文件在master分支上,就是:
http://127.0.0.1:8090/master/application-prod.yml
不加分支默认访问master分支。

如果我们更改{application},如果不存在的话,默认还是会以“application”的配置:

当然,如果我们输入一个不存在的配置,默认是什么都没有的(一个是json信息,一个会显示无默认配置文件,仅为“{}”):

我们可以在文件夹下放置一个名为application.yml的配置文件(提交至远程仓库),作为默认版本的配置文件:

文件内容为“type:default”。此时我们再访问不存在的版本配置,就会指向默认配置文件:

以上就是Config Server的搭建和仓库的连接,以及访问配置的方式介绍。下一篇我们继续讲解如何搭建Config Server客户端,以及客户端如何读取Config Server的配置。

参考:《51CTO学院Spring Cloud高级视频》

转载请注明出处:https://blog.csdn.net/acmman/article/details/104459521

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
spring boot+spring cloud视频教学下载全套。( ├1 公开课.avi ├10 4.6 Ribbon-3使用配置文件自定义Ribbon Client.avi ├11 4.7 Ribbon-4 Ribbon脱离Eureka使用.avi ├12 4.8 Feign-1 Feign的简介及基础使用.avi ├13 4.9 Feign-2覆写Feign的默认配置.avi ├14 4.10 Fegion-3覆写Fegion的默认配置及Fegion的日志.avi ├15 4.11 Fegion-4解决Fegion第一次请求timeout的问题.avi ├16 4.12 Eureka深入理解.avi ├17 4.13 Eureka常用配置详解.avi ├18 4.14 Eurek Ribbon Feign常见问题及解决.avi ├19 5.1超时机制,断路器模式简介.avi ├2 1.1 微服务架构概述.avi ├20 5.2 Hystrix简介及简单代码示例.avi ├20 5.2Hystrix简介及简单代码事例.avi ├21 Hystrix Health Indicator及Metrics Stream.avi ├22 5.4 Hystrix Health Indicator及Metrics Stream支持.avi ├23 5.5 Fegion的Hystrix支持.avi ├24 5.6如何禁用单个FegionClient的Hystrix的支持.avi ├25 5.7 Feign使用fallbackFactory属性打印fallback异常.avi ├26 5.8 Hystrix Dashboard的使用与常见问题总结.avi ├27 5.9 Turbine-上.avi ├28 5.9 Turbine-下.avi ├29 6.1 API Gateway简介.avi ├3.开始使用Spring Cloud实战微服务.avi ├30 6.2 Zuul简介及代码示例.avi ├31 6.3 Zuul指定path+serviceid.avi ├32 6.4 Zuul指定Path+url以及指定可用的服务节点时如何负载均衡.avi ├33 6.5 Zuul使用正则表达式指定路由规则.avi ├34 6.6 Zuul路由的strip-prefix与order.avi ├35 6.7 Zuul的各种姿势.avi ├36 6.8通过Zuul上传文件,禁用Zuul的Filters.avi ├37 6.9 Zuul的回退.avi ├38 6.10 使用Sidecar支持异构平台的微服务.avi ├39 6.10 Sidecar补充.avi ├4 服务提供者与服务消费者.avi ├4 服务提供者与服务消费者new.avi ├40 6.11-1 Zuul过滤器.avi ├41 6.11-2禁用Zuul的过滤器.avi ├42 7.1 Spring Cloud Config简介.avi ├43 7.2 编写Config Server.avi ├44 7.3 编写Config Client.avi ├45 7.4 Git仓库配置详解.avi ├46 7.5配置属性加解密之对称加密.avi ├47 7.6配置属性加解密之非对称加密.avi ├48 7.7 Spring Cloud Config与Eureka.avi ├49 7.8 Spring Cloud Config 与Eureka配合使用.avi ├5 4.1服务发现与服务注册.avi ├50 7.9 Spring Cloud Config配置属性刷新之手动刷新.avi ├51 7.10 Spring Cloud Config配置属性刷新之自动刷新.avi ├52 7.11 Spring Cloud Config配置属性刷新之自动刷新补充.avi ├53 7.12 Config Server的高可用.avi ├6 4.2Eureka简介与Eureka Server上.avi ├7 4.3将微服务注册到Eureka Server上.avi ├8 4.4 Ribbon-1 Ribbon的基本使用.avi ├9 4.5 Ribbon-2通过代码自定义配置ribbon.avi )

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光仔December

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值