上下文:我有一个 API,在 API 内部调用了 3 个不同的外部 POST API。行为应该是,如果所有 3 个 API 都给出成功响应,那么只有整体 API 应该成功。即使 1 失败,我们也会在 POST 调用上进行回滚。现在的问题在于一个响应时间非常长的外部 API。 P98是5秒。
我们的服务在 Flask 中,外部 request.post 方法有 10 秒超时。
现在我们正在构建一个解决方案,我们必须在后端 API 本身中进行重试。所以我有2个解决方案,两者都消耗相同的服务器资源吗?
以上两种方法是否消耗相同的服务器资源?
超时和重试配置通常不应该在客户端(请求者)完成,因为客户端对其请求超时限制和重试策略有更多的控制权?
我认为增加超时的第二种方法(如果可能的话)应该更有效,因为它需要客户端和服务器之间的通信较少,但理想情况下,如果尝试失败,它应该尽快与客户端通信,让客户端决定是否它应该尝试另一次重试,所以我认为第一个解决方案可能更合适