我通过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值? 预先感谢...
答案 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.