我正在开发一个项目,我必须调用第三方 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/