Springboot设置接口超时配置
程序员文章站
2022-06-19 14:57:29
Springboot设置服务超时配置方式第一种方式 : application.yml or bootstarp.yml 设置 : spring.mvc.async.request-timeout=5000 单位: ms 超时时间 5s第二种方式 : 重写WebMvcConfigurerAdapter 的configureAsyncSupport方法@Configurationpublic class WebMvcAdapter extends WebMvcConfigurationSup...
Springboot设置服务超时配置方式
- 第一种方式 : application.yml or bootstarp.yml 设置 : spring.mvc.async.request-timeout=5000 单位: ms 超时时间 5s
- 第二种方式 : 重写WebMvcConfigurerAdapter 的configureAsyncSupport方法
@Configuration
public class WebMvcAdapter extends WebMvcConfigurationSupport {
@Override
public void configureAsyncSupport(final AsyncSupportConfigurer configurer) {
configurer.setDefaultTimeout(5000);
configurer.registerCallableInterceptors(timeoutInterceptor());
}
@Bean
public TimeoutCallableProcessingInterceptor timeoutInterceptor() {
return new TimeoutCallableProcessingInterceptor();
}
}
- 第三种: 使用RestTemplate超时,设置配置HttpComponentsClientHttpRequestFactory中的RequestConfig属性
@Configuration
public class BeanConfig {
@Bean
public RestTemplate restTemplate() {
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setConnectTimeout(5000);
requestFactory.setReadTimeout(1000);
RestTemplate restTemplate = new RestTemplate(requestFactory);
return restTemplate;
}
}
- 测试结果 : 【需要配置生效,接口结果返回Callable类型】
1.
@GetMapping("/jk")
@ApiOperation("接口测试")
public Result jk() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
log.error(e.getMessage(), e);
}
return Result.okWithMsg("测试接口触发操作");
}
测试没有效果的,超时没有作用到
返回结果 : {"code":0,"msg":"测试接口触发操作","data":null,"failed":false,"succeed":true}
2.
@GetMapping("/jk-Callable")
@ApiOperation("接口Callable测试")
public Callable<String> jkCallable() {
return new Callable<String>() {
@Override
public String call() throws Exception {
Thread.sleep(10000); //this will cause a timeout
return "接口Callable测试";
}
};
}
测试是生效的,结论 : 需要配置生效,接口结果返回Callable类型
返回结果 : {"code":-1,"msg":"服务器异常","data":null,"failed":true,"succeed":false}
微服务接口超时配置
- 在微服务中,服务与服务调用是用feign调用,我们可以设置相应 ribbon 超时时间以熔断器抛异常接口信息,配置例如:
服务入口Nginx超时配置
- Nginx 设置接口请求超时
参考文章:
本文地址:https://blog.csdn.net/zuozhiyoulaisam/article/details/112008881
上一篇: Groovy闭包
下一篇: 甜品和甜点有什么区别?有名的甜点有哪些?
推荐阅读
-
SpringBoot同一接口多个实现类配置
-
springboot中 配置文件 application.properties 中 设置连接mysql数据 数据源信息以及设置时区、编码 扫描mybatis映射、配置文件路径、开启驼峰命名
-
springboot最简方式整合hystrix以及根据配置文件设置默认参数
-
springboot 集成mybaits,接口和映射文件命名及配置问题
-
SpringCloud 教程 | 第七篇: 服务消费者整合(Feign+Ribbon)设置超时时间和重试机制进行服务熔断降级(SpringBoot)(2.X版本)
-
SpringBoot通过RestTemplate访问接口超时时间设置
-
Springboot 跨域配置无效及接口访问报错的解决方法
-
Springboot设置接口超时配置
-
Springboot2 session设置超时时间无效的解决
-
SpringBoot同一接口多个实现类配置的实例详解