1、简述

本文选用Git作为配置仓库,新建两个环境的配置文件夹,dev 和 test,文件夹中分别存放 Config Client 端的配置文件,目录结构如下:

├ ─ ─ dev

└ ─ ─ config-client-dev.properties

├ ─ ─ test

└ ─ ─ config-client-test.properties

2、Config Server 搭建

2.1、Maven依赖

Config Server 是一个基于Spring Boot的web应用,我们首先需要做的就是在pom中引入Spring Cloud Config Server的依赖。

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

2.2、Config Server配置

# 配置中心名称
spring.application.name=lkf-config-git
# 配置中心端口号
server.port=1000 # 配置git仓库地址
spring.cloud.config.server.git.uri=https://github.com/liukaifeng/lkf-cloud
# 配置文件查找路径
spring.cloud.config.server.git.search-paths=config-repo/dev
# 配置中心api前缀
spring.cloud.config.server.prefix=lkf

2.3、启用Config Server

最后就是启用Config Server,只需要加上@EnableConfigServer即可

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

配置后完成后启动应用,Config Server就开始工作了,访问地址:
http://localhost:1000/lkf/config-client/dev 看到了刚刚配置文件中的配置信息,到此配置中心服务端搭建完成。

3、Config Client 使用

3.1、Maven依赖

Config Client 是一个基于Spring Boot的web应用,我们首先需要做的就是在pom中引入Spring Cloud Config Client的依赖。

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

3.2、Config Client配置

我们需要做一些配置使Config Client知道Config Server的地址,以及应用自身配置的信息,如:应用名字,环境,配置的版本等信息,以下是配置:

#配置环境
spring.cloud.config.profile=dev
#配置中心地址
spring.cloud.config.uri=http://localhost:1000/lkf
#配置文件名称
spring.cloud.config.name=config-client

配置完成后,启动应用,Config Client就会自动从Config Server获取配置,并注册到注册中心,访问注册中心地址:http://localhost:8888/


至此,Config Client 已成功从配置中心拉取并解析成功配置并注册到了注册中心。另外在应用启动日志中也可以看到拉取配置信息的日志:

Fetching config from server at : http://localhost:1000/lkf
2018-11-03 22:48:47.951 [main] DEBUG org.springframework.web.client.RestTemplate - Created GET request for "http://localhost:1000/lkf/config-client/dev"
2018-11-03 22:48:48.015 [main] DEBUG org.springframework.web.client.RestTemplate - Setting request Accept header to [application/json, application/*+json]
2018-11-03 22:48:49.130 [main] DEBUG org.springframework.web.client.RestTemplate - GET request for "http://localhost:1000/lkf/config-client/dev" resulted in 200 (null)
2018-11-03 22:48:49.132 [main] DEBUG org.springframework.web.client.RestTemplate - Reading [class org.springframework.cloud.config.environment.Environment] as "application/json;charset=UTF-8" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@273842a6]
2018-11-03 22:48:49.150 [main] INFO o.s.c.c.client.ConfigServicePropertySourceLocator - Located environment: name=config-client, profiles=[dev], label=null, version=0eaed01201a6f2c5fd2b0fd3b637d8384f3c79b9, state=null
2018-11-03 22:48:49.150 [main] DEBUG o.s.c.c.client.ConfigServicePropertySourceLocator - Environment config-client has 1 property sources with 13 properties.
2018-11-03 22:48:49.150 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - Located property source: CompositePropertySource {name='configService', propertySources=[MapPropertySource@466319810 {name='configClient', properties={config.client.version=0eaed01201a6f2c5fd2b0fd3b637d8384f3c79b9}}, MapPropertySource@219812012 {name='https://github.com/liukaifeng/lkf-cloud/config-repo/dev/config-client-dev.properties', properties={server.port=8001, spring.application.name=lkf-eureka-client, eureka.client.serviceUrl.defaultZone=${EUREKA_SERVICE_URL:http://localhost:8888}/lb/eureka/, management.endpoint.conditions.enabled=true, eureka.instance.prefer-ip-address=true, eureka.instance.instanceId=${spring.application.name}@${spring.cloud.client.ip-address}@${server.port}, management.endpoints.web.exposure.include=*, management.endpoint.health.show-details=always, management.endpoint.logfile.enabled=true, management.endpoint.auditevents.enabled=true, management.endpoint.loggers.enabled=true, info.project.name=@project.name@, info.project.version=@project.version@}}]}
2018-11-03 22:48:49.150 [main] DEBUG o.s.core.env.PropertySourcesPropertyResolver - Could not find key 'logging.config:' in any property source

Spring Cloud Config(二):基于Git搭建配置中心的更多相关文章

  1. Spring Cloud Config、Apollo、Nacos配置中心选型及对比

    Spring Cloud Config.Apollo.Nacos配置中心选型及对比 1.Nacos 1.1 Nacos主要提供以下四大功能 2.Spring Cloud Config 3.Apollo ...

  2. Spring Cloud Config 使用Bus的动态配置中心

    server端配置 POM文件 <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  3. Spring cloud config client获取不到配置中心的配置

    Spring cloud client在配置的时候,配置文件要用 bootstrap.properties 贴几个说明的链接.但是觉得说的依然不够详细,得空详查. 链接1 链接2 链接3 原文地址:h ...

  4. Spring Cloud Config(三):基于JDBC搭建配置中心

    1.简介 本文主要内容是基于jdbc搭建配置中心,使应用从配置中心读取配置信息并成功注册到注册中心,关于配置信息表结构仅供参考,大家可以根据具体需要进行扩展. 2.Config Server 搭建 2 ...

  5. 9.Spring Cloud Config统一管理微服务配置

    Spring Cloud Config统一管理微服务配置 9.1. 为什么要统一管理微服务配置 9.2. Spring Cloud Config简介 Spring Cloud Config为分布式系统 ...

  6. 一起来学Spring Cloud | 第七章:分布式配置中心(Spring Cloud Config)

    上一章节,我们讲解了服务网关zuul,本章节我们从git和本地两种存储配置信息的方式来讲解springcloud的分布式配置中心-Spring Cloud Config. 一.Spring Cloud ...

  7. Spring Cloud学习笔记【九】配置中心Spring Cloud Config

    Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分.其中服务端 ...

  8. spring boot 2.0.3+spring cloud (Finchley)6、配置中心Spring Cloud Config

    https://www.cnblogs.com/cralor/p/9239976.html Spring Cloud Config 是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持, ...

  9. Spring Cloud系列(六):配置中心

    在使用Spring Boot的时候,我们往往会在application.properties配置文件中写一些值,供应用使用,这样做的好处是可以在代码中引用这些值,当这些值需要作出修改的时候,可以直接修 ...

随机推荐

  1. Java Web 深入分析(8) Servlet工作原理解析

    Servlet Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态We ...

  2. Go part 2 基础语法

    关键字.标识符 标识符: 是用户或系统定义的有意义单词组合,或单词与数字组合(具体意义有定义者决定) 标识符以字母下划线开头,大小写敏感,比如:boy,  Boy,  _boy,  _(匿名变量,用来 ...

  3. Pandas进阶之提升运行效率

    前言 如果你现在正在学习数据分析,或者正在从事数据分析行业,肯定会处理一些大数据集.pandas就是这些大数据集的一个很好的处理工具.那么pandas到底是什么呢?官方文档上说: " 快速, ...

  4. redis cluster异地数据迁移,扩容,缩容

    由于项目的服务器分布在重庆,上海,台北,休斯顿,所以需要做异地容灾需求.当前的mysql,redis cluster,elastic search都在重庆的如果重庆停电了,整个应用都不能用了. 现在考 ...

  5. 伪元素before和after本质

    之所以被称为伪元素,是因为他们不是真正的页面元素,html没有对应的元素,但所有的用法和表现行为和真正的页面元素是一样的,可以对其使用诸如页面元素一样的css样式,表面上看上去貌似页面的谋些元素,实际 ...

  6. ulimit用法

    ulimit -a:显示当前所有的资源限制 -c:core文件大小 -f:设置创建文件的最大值 -n:设置内核可以同时打开的文件描述符的最大值 -p:设置管道缓冲区的最大值 -s:设置堆栈的最大值 - ...

  7. cygwin_exception::open_stackdumpfile: Dumping stack trace to HttpServer.exe.stackdump错误

    本来,我在Windows下使用Cygwin编译运行c程序,在执行*.exe时报出如题错误,我在Linux环境下使用gcc编译运行,则正常. 所以,当你无法解决上述问题时,换系统吧!

  8. leetcode-3 最长无重复字串

    3. Longest Substring Without Repeating Characters 题面 Given a string, find the length of the longest ...

  9. ASE19团队项目 beta阶段 model组 scrum7 记录

    本次会议于12月10日,19时30分在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Kun ...

  10. 目标检测 — one-stage检测(一)

    总结的很好:https://www.cnblogs.com/guoyaohua/p/8994246.html 目前主流的目标检测算法主要是基于深度学习模型,其可以分成两大类:two-stage检测算法 ...