如何为Spring Boot Configuration服务器设置超时值

时间:2018-09-25 12:27:54

标签: spring spring-boot microservices spring-cloud

我通过Spring Boot ConfigServer和一个客户端服务进行了简单的设置,该服务正在调用ConfigServer以从GIT获取配置prop文件的详细信息。

我的配置服务器正常工作,并且能够从GIT获取支持文件。但是,当我尝试运行将从ConfigServer服务器获取详细信息的使用者服务器时,出现一个错误... 错误如下...

Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available

localhost:8888是configServer的URL,我可以直接从浏览器调用它,但是由于我有一个很大的prop文件,因此需要一些时间才能从GIT检索它。

configServer上的配置(application.properties)

spring.application.name=config-server
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/shibajiJava/MicroServiceDemo
spring.cloud.config.server.bootstrap=true

消费者服务中的配置(bootstrap.properties)

spring.application.name=configuration-service
spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.server.bootstrap=true

是否有任何事情可以在消费者端指定timeOut值? 预先感谢...

2 个答案:

答案 0 :(得分:2)

配置服务器端:

  • 尝试将spring.cloud.config.server.git.timeout设置为所需值。
  • 尝试将server.connection-timeout设置为所需的值。

配置客户端:

我不知道任何可以做这项工作的财产。您可能必须覆盖执行请求的默认RestTemplate。为此,请创建一个具有所需超时时间的RestTemplate并注入它而不是默认超时时间(我最好的猜测是在正确的@Qualifier@Primary之上,但您应检查来源并确认确实是默认模板的注入方式。

@Configuration
public class ConsumerConfig {

    @Bean
    @Primary
    @Qualifier("rightQualifierHere")
    public RestTemplate configRestTemplate() {
        return new RestTemplateBuilder()
               .setReadTimeout(readTimeout)
               .setConnectTimeout(connectionTimeout)
               .build();
    }

}

文档:

答案 1 :(得分:0)

作为Spring Config Client文档的一部分,有2个属性可用于配置超时。

If you want to configure timeout thresholds:

Read timeouts can be configured by using the property spring.cloud.config.request-read-timeout.

Connection timeouts can be configured by using the property spring.cloud.config.request-connect-timeout.

Source