RestTemplate没加超时时间,导致的程序卡死

本文介绍了一种使用Spring Boot框架中RestTemplateBuilder进行RestTemplate实例的配置方法,包括设置连接和读取超时时间,以及基本认证信息。通过SimpleClientHttpRequestFactory自定义请求工厂,实现对HTTP请求的高级控制。
部署运行你感兴趣的模型镜像
@Component
@Log4j2
public class RestTemplateManager {
    @Autowired
    private RestTemplateBuilder builder;

    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    private MonitorSettings monitorSettings;

    @Autowired
    private JobManager jobManager;

    @Bean
    public RestTemplate restTemplate() {
        SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
        requestFactory.setConnectTimeout(10000);
        requestFactory.setReadTimeout(10000);

        RestTemplate restTemplate = builder.basicAuthorization("admin", "public").build();
        restTemplate.setRequestFactory(requestFactory);

        return restTemplate;
    }

 

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

### RestTemplate 默认的超时时间 `RestTemplate` 是 Spring 提供的用于发送 HTTP 请求的客户端工具。在默认情况下,`RestTemplate` **并设置任何超时时间**,这意味着如果目标服务器有响应,请求将会无限期地等待下去,直到网络中断或服务器返回响应。这种行为在实际生产环境中是可接受的,因为它可能导致线程阻塞甚至系统崩溃[^1]。 对于 `RestTemplate` 来说,超时时间通常包括两个部分: - **连接超时(Connect Timeout)**:建立连接的最大等待时间。 - **读取超时(Read Timeout)**:等待服务器响应的最大时间。 由于 `RestTemplate` 默认设置这些值,因此在使用时需要手动配置。可以通过 `SimpleClientHttpRequestFactory` 来设置这些超时参数,如下所示: ```java import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; public class RestTemplateConfig { public static RestTemplate createRestTemplateWithTimeout() { SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(60000); // 设置连接超时时间为 60 秒 factory.setReadTimeout(300000); // 设置读取超时时间为 5 分钟 return new RestTemplate(factory); } } ``` 在某些特定的场景下,例如 Kafka 客户端中提到的 `deliveryTimeoutMs` 默认为 120 秒[^3],或微软 WCF 框架中通过 `TimeSpan` 指定超时时间[^4],这些是其他组件的默认行为,并适用于 `RestTemplate` 本身。 因此,**在使用 `RestTemplate` 时,务必显式配置超时时间以避免潜在的阻塞问题**。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值