资讯专栏INFORMATION COLUMN

Spring Cloud Config 学习(一)

wthee / 1796人阅读

摘要:默认使用存储配置内容也可以使用本地文件系统或存储配置。会在微服务启动时,请求以获取所需要的配置属性,并且缓存在本地以提高性能。

简介

对于传统的单体应用,通常是使用配置文件来管理所有的配置,但是在微服务架构中,会存在很多的微服务,如果每一个微服务都维护自己的配置,显然是非常的麻烦且不灵活,维护成本会非常高

使用Spring Cloud Config可以实现一下功能

集中管理配置

不同环境,不同配置

运行时期动态调整。并且在修改配置时不会停止微服务

配置修改后自动更新

Spring Cloud Config 为分布式系统外部化配置提供了服务器端和客户端的支持,它包括Config Server 和 Config Client 两部分。默认使用 Git 存储配置内容(也可以使用Subversion、本地文件系统或 Vault 存储配置)。Config Client 会在微服务启动时,请求 Config Server 以获取所需要的配置属性,并且缓存在本地以提高性能。

图片来源

实践 Config Server 准备Git仓库

这里需要一个Git仓库来存储配置文件,我是使用GitHub来做仓库的。需要在仓库的根目录下放置几个测试用的配置文件

文件:

microservice-foo.properties
microservice-foo-dev.properties
microservice-foo-test.properties
microservice-foo-production.properties

内容分别是:

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

然后新建分支dev ,并且将 microservice-foo-dev.properties 文件中的内容修改为 profile=dev-2.0

编写代码

集成:

        
            org.springframework.cloud
            spring-cloud-config-server
        

启动文件添加@EnableConfigServer标签

配置文件:

spring.application.name=microservice-config-server

# 这个uri使用可以clone的路径
spring.cloud.config.server.git.uri=https://github.com/wkkdhr/Dome1.git
# github的账号密码
spring.cloud.config.server.git.username=***
spring.cloud.config.server.git.password=***

启动服务之后,就可以使用 Config Service 的端点获取配置文件内容了。配置文件与端点的映射规则如下:

/{application}/{profile}/{label}

/{application}-{profile}.yml
/{application}-{profile}.properties

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

占位符含义:

{application} 表示微服务名称。microservice-foo-dev.properties 中 microservice-foo 就是微服务名称

{profile} 表示微服务名后面的dev、test等。microservice-foo-dev.properties 中 dev 就是{profile}

{label} 表示Git仓库分支,默认是master,可省略

访问 http://localhost:8080/microservice-foo/dev 得到以下结果:

可以看到相关的配置详情信息。

访问 http://localhost:8080/microservice-foo-dev.properties 可以直接获取配置文件内容:

需要说明一下,因为是使用GitHub来作为Git仓库,所以访问有可能会出现失败的风险

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75863.html

相关文章

  • Spring Cloud Config 学习(二)

    摘要:是匹配规则,意思是配置以开头并且以开头的。健康监控集成了。可以通过配置去检查指定的配置文件访问结果如下可以通过设置来禁用健康检查。显示的是类似于用户自己定义的属性的那种黄色背景。意思就是这个不是系统的属性,但是确认是生效的。 《Spring Cloud与Docker 微服务架构实战》学习笔记 Config Client 在上篇文章中,我们已经编写好了 Config Server 那个客...

    Developer 评论0 收藏0
  • springCloud学习2(服务发现)

    摘要:服务消费者可以使用多种模型来发现服务。客户端将定期与服务发现层进行通信,并刷新服务实例的缓存。为了达成目的,我们将要学习使用个不同的客户端库,服务消费者可以使用它们来和进行交互。 本篇代码存放于:github 一、服务发现架构   服务发现架构通常具有下面 4 个概念: 服务注册:服务如何使用服务发现代理进行注册? 服务地址的客户端查找:服务客户端查找服务信息的方法是什么? 信息共享...

    史占广 评论0 收藏0
  • 6、如何获取配置中心的配置

    摘要:在配置中心这一篇博文里学习了如何获取配置文件。先在仓库中创建如下配置文件具体参考下面地址创建项目,对应的如下其中与可以二选一,但是根据选择的依赖不同对应的配置文件有些许不一样。 在《配置中心》这一篇博文里学习了如何git获取配置文件。大概的流程可以用下图来概括。 showImg(https://segmentfault.com/img/bVbtW4Y?w=421&h=363); 《配置...

    weapon 评论0 收藏0
  • SpringCloud核心教程 | 第三篇:服务注册与发现 Eureka篇

    摘要:下一篇介绍基于的服务注册与调用。服务提供者工程配置这里服务提供者是使用之前进阶教程第三篇整合连接池以及监控改造而来,这里一样的部分就不再重复说明,下面将说明新增的部分。 Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分...

    scq000 评论0 收藏0
  • SpringCloud核心教程 | 第三篇:服务注册与发现 Eureka篇

    摘要:下一篇介绍基于的服务注册与调用。服务提供者工程配置这里服务提供者是使用之前进阶教程第三篇整合连接池以及监控改造而来,这里一样的部分就不再重复说明,下面将说明新增的部分。 Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分...

    light 评论0 收藏0

发表评论

0条评论

wthee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<