Перейти к содержимому
4 / 15

Как изолировать ресурсы, чтобы отказ одной зависимости не утащил весь сервис?

Ставят переборки, как в корпусе судна: общий пул исполнителей и соединений делят на отдельные отсеки под каждую зависимость и под каждый критичный маршрут. Технически это отдельный HTTP-клиент со своим пулом на зависимость, семафор на число одновременных вызовов, отдельный пул потоков под блокирующие операции, а в крайнем случае — отдельный процесс или отдельный деплой под критичный путь. Смысл в том, что медленная зависимость может занять только свой отсек: остальные маршруты продолжают работать. Ожидание в очереди на семафор тоже ограничивают по времени, иначе очередь просто переезжает на шаг раньше и отказ приходит с задержкой.

Как изолировать ресурсы, чтобы отказ одной зависимости не утащил весь сервис? | JScriptiser