zoukankan      html  css  js  c++  java
  • Spring Cloud Config(二):基于Git搭建配置中心

    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 看到了刚刚配置文件中的配置信息,到此配置中心服务端搭建完成。

    image

    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/

    image
    至此,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
    
  • 相关阅读:
    Undo/Redo的C#实现方式
    c#中@符号作用
    面向对象理解随笔
    C# 面向对象定义常量,属性,方法
    c# 字段和属性
    面向对象思想
    用C表达面向对象语言的机制——C#版
    判断生日
    查找字符
    被7整除
  • 原文地址:https://www.cnblogs.com/liukaifeng/p/10052584.html
Copyright © 2011-2022 走看看