настройка тайм-аута для вызовов API на основе процентиля - PullRequest
1 голос
/ 02 августа 2020

У меня есть требование, и его варианты доступны ниже. Каков наилучший выбор для этой реализации?

Новый восходящий API-интерфейс разрабатывается так, чтобы предлагать SLA в среднем 500 мс и максимум 800 мс (99-й процентиль ) время отклика. Соответствующая реализация API должна последовательно вызывать 3 нижестоящих API очень похожей сложности.

Первый из этих нижестоящих API предлагает следующее SLA для времени отклика: медиана: 100 мс, 80-й процентиль: 500 мс, 95-й процентиль : 1000 мс.

Если возможно, как можно установить тайм-аут в восходящем API для вызова первого нисходящего API для удовлетворения желаемого SLA нового восходящего API?

A. Установите тайм-аут 50 мс; это сокращает время выполнения большего количества вызовов этого API, но дает дополнительное пространство для повторных попыток

B. Установите тайм-аут 100 мс; это оставляет 400 мсек для завершения двумя другими нижестоящими API

C. Невозможно выполнить тайм-аут для выполнения желаемого SLA восходящего API; другой SLA должен быть согласован с первым нижележащим API или вызвать альтернативный API

1 Ответ

1 голос
/ 02 августа 2020

Выбор варианта A) это будет ниже медианы для последующей услуги, которая говорит о том, что вы получите менее 50% соответствия SLA.

Выбор варианта B) Установка 100 мс лучше в том смысле, что вы получаете 50% вызовов нормально, но тогда вы не знаете, каковы соглашения об уровне обслуживания для двух других нижестоящих API. Таким образом, вы снова получите менее 50% соответствия SLA.

Я бы выбрал здесь вариант C) . Уровень успеха менее 50%, который дал бы вам вариант A и B, - это очень плохо. Я бы попробовал договориться.

...