SpringCloud(十三):SpringCloud Config分布式配置中心(2)

原创文章,转载请注明原文章地址,谢谢!

Config客户端配置

首先在repository文件夹下新建文件cloud-config-client.yml文件,添加以下内容。注意要以UTF-8编码格式保存,然后提交并推送至远程。

spring:
  profiles:
    active:
    - dev
---
server: 
  port: 4001 
spring:
  profiles: dev
  application: 
    name: cloud-config-client
eureka: 
  client: 
    service-url: 
      defaultZone: http://eureka-dev.com:7001/eureka/   
---
server: 
  port: 4002 
spring:
  profiles: test
  application: 
    name: cloud-config-client
eureka: 
  client: 
    service-url: 
      defaultZone: http://eureka-test.com:7001/eureka/

新建cloud-config-client-3005模块,添加相关maven依赖。


    org.springframework.cloud
    spring-cloud-starter-config

添加bootstrap.yml配置文件,内容如下。

spring:
  cloud:
    config:
      name: cloud-config-client
      profile: dev
      label: master   
      uri: http://config3001.com:3001

在这里对bootstrap.yml配置文件做简要说明。applicaiton.yml是用户级的资源配置项,bootstrap.yml是系统级的,优先级更加高。SpringCloud会创建一个Bootstrap Context,作为Spring应用的Application Context的父上下文。初始化的时候,Bootstrap Context负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的EnvironmentBootstrap属性有高优先级,默认情况下,它们不会被本地配置覆盖。Bootstrap contextApplication Context有着不同的约定,所以新增了一个bootstrap.yml文件,保证Bootstrap ContextApplication Context配置的分离。
application.yml

spring:
  application:
    name: microservicecloud-config-client

需要在本地hosts文件中添加映射关系。

127.0.0.1 config3005.com

我们在客户端写一个Rest类,该类主要是通过Config服务端访问远程库的配置内容。

@RestController
public class HelloController {

    @Value("${eureka.client.server-url.defaultZone}")
    private String notify;

    @RequestMapping("/config")
    public String getConfig() {
        return notify;
    }
}

接下来测试一下,启动config3001配置中心并访问config3001.com:3001/application-dev.yml

启动config-client-3005作为client准备访问。bootstrap.yml里面的profile值是什么,决定从github上读取什么,目前值是dev,访问config3005.com:4001/config
如果bootstrap.yml里面的profile的值是test,就从github上读取test配置,访问config3005.com:4002/config
此时ConfigClient已经成功通过ConfigServer读取到了github上的配置信息。

博客内容仅供自已学习以及学习过程的记录,如有侵权,请联系我删除,谢谢!

你可能感兴趣的:(SpringCloud(十三):SpringCloud Config分布式配置中心(2))