我爱编程

2.Spring Cloud 之创建配置中心服务-客户端

2017-09-08  本文已影响2408人  PKAQ

各个微服务想要使用配置中心服务非常简单,仅需要在bootstrap.yaml(或.properties)文件中稍作配置即可

1.添加依赖

`org.springframework.cloud:spring-cloud-starter-config:${cloud_config}`

2.配置上下文

bootstrap.yaml中添加

spring:
    application:
        name: config-client
    cloud:
        config:
            # 配置中心地址
            uri: http://localhost:8888
            # 要应用的配置文件
            profile: dev
            # 要读取的配置文件名
            name: bravo
            # 对应服务端security设置的用户名密码
            username: pkaq
            password: pkaqx

注意这里是bootstrap.yml而不是appliction.yml,因为bootstrap.yml会在应用启动之前读取, 而spring.cloud.config.uri会影响应用启动,关于上下文可参见如下内容.

2.1 启动上下文

Spring Cloud会创建一个Bootstrap Context,作为Spring应用的Application Context的父上下文。初始化的时候,Bootstrap Context负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的EnvironmentBootstrap属性有高优先级,默认情况下,它们不会被本地配置覆盖。 Bootstrap contextApplication Context有着不同的约定,所以新增了一个bootstrap.yml文件,而不是使用application.yml (或者application.properties)。保证Bootstrap ContextApplication Context配置的分离。

推荐在bootstrap.yml or application.yml里面配置spring.application.name. 你可以通过设置spring.cloud.bootstrap.enabled=false来禁用bootstrap

2.2 应用上下文层次结构

如果你通过SpringApplication或者SpringApplicationBuilder创建一个Application Context,那么会为spring应用的Application Context创建父上下文Bootstrap Context。在Spring里有个特性,子上下文会继承父类的property sources and profiles ,所以main application context 相对于没有使用Spring Cloud Config,会新增额外的property sources。额外的property sources有:

bootstrap.yml是由spring.cloud.bootstrap.name(默认:”bootstrap”)或者spring.cloud.bootstrap.location(默认空)

覆盖远程属性

property sourcesbootstrap context 添加到应用通常通过远程的方式,比如”Config Server”。默认情况下,本地的配置文件不能覆盖远程配置,但是可以通过启动命令行参数来覆盖远程配置。如果需要本地文件覆盖远程文件,需要在远程配置文件里设置授权
spring.cloud.config.allowOverride=true(这个配置不能在本地被设置)。一旦设置了这个权限,你可以配置更加细粒度的配置来配置覆盖的方式,

比如:

spring:
    cloud:
        config:
            # 覆盖任何本地属性 
            overrideNone: true 
            # 仅仅系统属性和环境变量 
            overrideSystemProperties: false

源文件见PropertySourceBootstrapPropertie

3.启动服务,大功告成.

端口号采用配置中心相应配置文件的端口
启动后访问 http://localhost:port/say

参考

上一篇下一篇

猜你喜欢

热点阅读