Spring Cloud Config 分布式配置中心

Spring Cloud Config 简介

分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。

Spring Cloud
中,有分布式配置中心组件 Spring Cloud Config
,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程 Git 仓库中。

Spring Cloud Config
组件中,分两个角色,一是服务端 Config Server
,二是客户端 Config Client

Spring Cloud Config 服务端

引入依赖

pom.xml
中主要添加 spring-cloud-starter-netflix-eureka-server
spring-cloud-config-server
依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

相关配置

需要在 bootstrap.yml
中配置,原因是可以优先加载配置。

spring:
  cloud:
    config:
      label: {git仓库标签}
      server:
        git: 
          uri: {git仓库地址}
          search-paths: {仓库内文件存放路径}
          username: {用户名}
          password: {密码}

配置说明:

spring.cloud.config.label
spring.cloud.config.server.git.uri
spring.cloud.config.server.git.search-paths
spring.cloud.config.server.git.username
spring.cloud.config.server.git.password

注意
:如果使用 GitLab 作为仓库的话, spring.cloud.config.server.git.uri
需要在结尾加上 .git
GitHub 则不用。

在 Git 仓库中创建配置文件存放目录

在Git 仓库中创建文件夹,用于存放各个服务的资源配置文件。

一般在开发环境中,都会独立出一个 Git 项目用来存放资源配置配置文件。

HTTP 请求配置文件示例

http://{ip}:{port}/{applicationName}/{profile}[/{label}]

http://{ip}:{port}/{applicationName}-{profile}.yml


http://{ip}:{port}/{label}/{applicationName}-{profile}.yml

Spring Cloud Config 客户端

引入依赖

hello-spring-cloud-netflix-eureka
工程的 pom.xml
中添加 spring-cloud-starter-config
依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

创建配置文件

在 Git 仓库中存放配置文件的目录下创建 hello-spring-cloud-netflix-eureka-dev.yml

spring:
  application:
    name: hello-spring-cloud-netflix-eureka

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

本地配置

修改 hello-spring-cloud-netflix-eureka
工程的 applicaiton.yml
bootstrap.yml
并清空文件

bootstrap.yml
中添加 spring-cloud-config
客户端的配置

spring:   
  cloud:     
    config:       
      uri: http://localhost:8888       
      name: hello-spring-cloud-netflix-eureka-dev       
      label: master       
      profile: dev

配置说明:

  • spring.cloud.config.uri
    :配置服务中心的网址
  • spring.cloud.config.name
    :配置资源配置文件名称(不含后缀)
  • spring.cloud.config.label
    :配置仓库的分支
  • spring.cloud.config.profile
    :配置文件的环境标识

    dev
    test
    prod
    

测试云配置

  • 依次启动 spring-cloud-config
    > spring-cloud-eureka
    服务
  • 访问 Eureka 界面 http://localhost:8761
  • 文章作者:彭超
  • 本文首发于个人博客https://antoniopeng.com/2019/11/25/springcloud/SpringCloudConfig%E5%88%86%E5%B8%83%E5%BC%8F%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83/
  • 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 彭超 | Blog

原文 

https://segmentfault.com/a/1190000022348726

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Spring Cloud Config 分布式配置中心

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址