购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 使用Config Client配置客户端

接下来创建一个Spring Boot应用作为配置管理的客户端来读取Config Server中提供的配置,如图3-1所示。

图3-1 Client示意图

在pom.xml中添加如下依赖:


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

添加bootstrap.yml:


server:
    port: 7002
spring:
    application:
        name: cloudConfigDemo${server.port}
    cloud:
        config:
        profile: dev
        label: master
        name: configServerDemo
        uri: http://localhost:8888/

注意 上面这些属性必须配置在bootstrap.properties中,config部分才能被正确加载。因为config的相关配置会先于application.properties,而bootstrap.properties的加载也先于application.properties。

创建ConfigClientApplication类并添加@EnableAutoConfiguration注解,表示自动获取项目中的配置变量:


@SpringBootApplication
@RestController
@EnableAutoConfiguration
public class ConfigClientApplication {
@Value("${key1}")
String foo;
@RequestMapping("/say")
@ResponseBody
public String say(){
    return foo;
}
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

在ConfigClientApplication中我们创建了一个RestController提供Web服务,输出读取到的key1的值。

启动main方法,看到控制台信息中将有如下一行日志,包含了配置的相关信息:


[main]c.c.c.ConfigServicePropertySourceLocator:Located-environment:name=configServerDemo,profiles=[test],label=branch1,version=575f8f8ded872700c7abcfb6bbbecf02f9271a17, state=null

现在我们尝试访问 http://localhost:8084/say ,会得到branch1-test-value1的响应。

下面我们来一起了解Spring Cloud Config Client可能用到的常用配置。

(1)客户端快速失败

有的时候,需要在Config Server连接不上时直接启动失败。需要这个特性时可以设置bootstrap配置项spring.cloud.config.failFast=true来开启。

(2)客户端重试

可以在Config Server不可用时,让客户端重试。可以通过设置“spring.cloud.config.failFast=false;”在classpath中增加spring-retry、spring-boot-starter-aop依赖。默认情况下会重试6次,每次间隔1000ms并以1.1乘以次数方式递增。也可以通过'spring.cloud.config.retry'系列配置来修改相关配置。而且我们可以自己实现一个RetryOperations-Interceptor来详细地自定义重试策略。

(3)HTTP权限

如果要对HTTP请求进行账号密码的权限控制,可以配置服务器URI或单独的用户名和密码属性,bootstrap.yml配置文件如下:


spring:
    cloud:
        config:
            uri: https://user:secret@myconfig.mycompany.com

或者:


spring:
    cloud:
        config:
            uri: https://myconfig.mycompany.com
            username: user
            password: secret

注意 spring.cloud.config.password和spring.cloud.config.username值覆盖URI中提供的内容。 mLWuPSG8fnWY0yWQoPW2wr/XdTFYD6kHUvfgQ2r/s/nEb6x2feE/Ej1U3H2y8flO

点击中间区域
呼出菜单
上一章
目录
下一章
×