java - 对于总是很慢的服务,REST API 请求超时

标签 java spring rest spring-mvc timeout

我正在开发一个项目,我必须调用第三方 REST 服务。当前设置的问题是服务至少在 16 秒内不会返回。这个响应时间可能会超过这个时间。

为了避免线程在服务器上等待,我的服务的超时值为 16 秒。但这个值(value)并没有帮助。我对此进行了搜索,发现断路器模式很有用。引用:-spring-boot-rest-api-request-timeout 。我相信当服务几次响应缓慢时,这种模式很有用。就我而言,服务总是很慢。

我该如何应对这种情况?

最佳答案

如果你想要第三方REST服务的响应,你别无选择,只能等待,但如果你的请求方法还有其他事情要做。您应该使用 Callable Thread 向 REST 服务发送请求,并让主线程先完成其他工作,然后等待 Callable 回来。

也许您可以尝试在这种情况下使用一些缓存,例如@Cacheable或Redis。它可能会加速一些类似的请求。

或者,让您的请求方法先将响应发送回客户端。之后,在客户端使用AJAX访问第三方REST服务。

关于java - 对于总是很慢的服务,REST API 请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61148235/

相关文章:

java - 如何防止嵌入式netty服务器从spring-boot-starter-webflux启动?

java - 在生成的 Restful Web 服务中获取更多查询

java - Jersey、JAXB、JAX-RS、Moxy、Jackson、EclipseLink Moxy、json 和 xml 之间有什么关系?

java - 使用静态全局变量或内联变量 - 哪个更有效?

java - 正则表达式验证整数

java - 使用 Spring Security 进行 Spring Boot 测试。如何启动另一种安全配置?

java - 如何在 Spring Boot 应用程序中测试 @Configuration 和 @Bean?

java - 使用jmeter执行简单的java文件

java - 如何将模块声明注入(inject) JAR?

java - CXF:将隐式 header 添加到 CXF SOAP/REST Web 服务的 WSDL 和 WADL 响应