spring - 如何为 Spring Boot 配置服务器设置超时值

标签 spring spring-boot microservices spring-cloud

我有一个简单的设置,用于 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/

相关文章:

java - 如何初始化 Service 类中的变量

spring-boot - SpringBoot @ConditionalOnClass 如何工作?

java - Spring Cloud Gateway 返回空响应

java - Spring Web App - 简单的 JDBC 模板建议?

java - 如何使用 @ImportResource 导入 src/main/resources/static 中的整个配置文件目录?

java - CRUDRepository findAll 发现空

spring-boot - Resilience4j Retry+Spring Boot 2 application.yml 配置未应用

docker - 了解Docker容器cpu的用法

microservices - 是否应该使用数据库主键来跨微服务识别实体?

java - 在 Spring Boot 中创建路径