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

Использование асинхронного обмена сообщениями для улучшения доступности

Снхронное взаимодействие снижает доступность

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

Избавление от синхронного взаимодействия

Существует несколько способов избавления от синхронного взаимодействия.

  • Использование асинхронных стилей взаимодействия. В идеале всё взаимодействие должно происходить в асинхронном стиле.
  • Репликация данных. Сервис хранит копию (реплику) данных, которые ему нужны для обработки запросов. Чтобы поддерживать реплику в актуальном состоянии, он подписывается на события, публикуемые сервисами, которым эти данные принадлежат.
  • Завершение обработки после возвращения ответа. А именно, сервис сперва делает проверку запроса с помощью данных, доступных локально, обновляет свою базу данных (в том числе пополняя таблицу OUTBOX), и возвращает ответ клиенту. Таким образом, взаимодействие с другими сервисами происходит асинхронно. Часто этот процесс реализуется в виде повествования.

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

Комментарии

Комментарии