【问题标题】:timeout setting for APIs invocations based on percentile基于百分位的 API 调用超时设置
【发布时间】:2020-11-22 22:25:55
【问题描述】:

我有需求,下面提供了它的选项,这个实现的最佳选择是什么?

一个新的上游 API 旨在提供 500 毫秒中值和 800 毫秒最大响应时间(第 99 个百分位)的 SLA。对应的 API 实现需要依次调用 3 个复杂度非常相似的下游 API。

这些下游 API 中的第一个为其响应时间提供以下 SLA:中位数:100 毫秒,第 80 个百分位:500 毫秒,第 95 个百分位:1000 毫秒。

如果可能,如何在上游 API 中设置超时以调用第一个下游 API 以满足新的上游 API 所需的 SLA?

A.设置50毫秒的超时时间;这会超时对该 API 的更多调用,但会为重试提供更多空间

B.设置超时 100 毫秒;剩下 400 毫秒让其他两个下游 API 完成

C.无法满足上游 API 所需的 SLA;必须与第一个下游 API 协商不同的 SLA 或调用替代 API

【问题讨论】:

    标签: java api rest percentage percentile


    【解决方案1】:

    选择选项 A) 这将低于下游服务的中值,即您将获得低于 50% 的 SLA 合规性。

    选择选项 B) 设置 100 毫秒更好,因为你可以得到 50% 的调用,但是你不知道其他 2 个下游 API 的 SLA 是什么。因此,您将再次获得低于 50% 的 SLA 合规性。

    我会在这里选择选项 C)。选项 A 和 B 给您的成功率低于 50%,这非常糟糕。我会尝试谈判。

    【讨论】:

    • 感谢您的建议,但我必须选择选项 A 或 B 或 C,哪个是正确的,为什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2021-12-26
    • 2019-11-02
    • 2014-07-24
    • 1970-01-01
    • 2011-09-24
    • 2013-08-30
    相关资源
    最近更新 更多