Spring Cloud Config 分布式配置中心

2020-04-12 16:07:44来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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-serverspring-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:配置 Git 仓库地址(GitHub、GitLab、Gitee …)
  • spring.cloud.config.server.git.search-paths:配置仓库路径(存放配置文件的目录)
  • spring.cloud.config.server.git.username:访问 Git 仓库的账号
  • spring.cloud.config.server.git.password:访问 Git 仓库的密码

注意:如果使用 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.ymlbootstrap.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://www.cnblogs.com/antoniopeng/p/12687628.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JVM类加载过程详细分析

下一篇:基于JAVA-SSM框架的B/S微博系统的设计与实现