我有一个简单的设置,用于 spring boot ConfigServer 和一个调用 ConfigServer 以从 GIT 获取配置 prop 文件详细信息的客户端服务。
我的配置服务器工作正常,我能够从 GIT 获取 prop 文件。但是当我尝试运行将从 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
Configuration at Consumer Service (bootstrap.properties)
spring.application.name=configuration-service
spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.server.bootstrap=true
有什么东西可以在消费者端指定超时值吗? 提前致谢...
最佳答案
配置服务器端:
- 尝试将
spring.cloud.config.server.git.timeout
设置为所需的值。 - 尝试将
server.connection-timeout
设置为所需的值。
配置客户端:
我不知道有任何属性(property)可以完成这项工作。您可能必须覆盖执行请求的默认 RestTemplate
。为此,创建一个具有所需超时的 RestTemplate
并注入(inject)它而不是默认的(我最好的猜测是使用正确的 @Qualifier
和 @Primary
最重要的是,但您应该检查来源并确认这确实是默认模板的注入(inject)方式。
@Configuration
public class ConsumerConfig {
@Bean
@Primary
@Qualifier("rightQualifierHere")
public RestTemplate configRestTemplate() {
return new RestTemplateBuilder()
.setReadTimeout(readTimeout)
.setConnectTimeout(connectionTimeout)
.build();
}
}
文档:
关于spring - 如何为 Spring Boot 配置服务器设置超时值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52498247/