Перейти к содержанию

Взаимодействие на основе удаленного вызова процедур (RPI)

Рассмотрим шаблон удаленный вызов процедур. Существует много протоколов RPI. Рассмотрим REST и gRPC.

Оба представляют собой синхронные коммуникационные механизмы и, как следствие, страдают из-за проблем с частичным отказом. Например, сервис может быть недоступен вследствие сбоя, или находиться в процессе обслуживания. Кроме того, сервис может быть перегруженным и отвечать медленно, или отклонять некоторые запросы.

Работа в условиях частичного отказа

Поскольку клиент блокируется в ожидании ответа, существует опасность того, что его собстевнные клиенты тоже окажутся заблокированными по цепочке.
Каждый раз, когда один сервис вызывает другой, он должен защитить себя при помощи комбинации следующих подходов:

Также, помимо защиты от блокирования, должны быть предусмотрены стратегии поведения при ошибке. Например

  • Вернуть ошибку
  • Вернуть закэшированное ранее значение
  • Вернуть значение по умолчанию/значение-заглушку

Очевидно, что каждая из стратегий должна использоваться там, где она возможна и предпочтительна.

Обнаружение сервисов


Последнее обновление : 7 сентября 2022 г.
Дата создания : 25 июля 2022 г.

Комментарии

Комментарии