Являются ли очереди или остальные apis лучшим подходом для обработки пользовательских запросов? - PullRequest
0 голосов
/ 11 октября 2018

У меня есть требование, когда несколько приложений хотят отправлять уведомления в форме электронной почты. Я хочу иметь центральное приложение, где пользователи также отправляют уведомления, и это центральное приложение преобразуется в электронную почту и отправляет его.Должен ли я использовать REST API между центральным приложением для получения уведомлений от других приложений или использовать MQ, где другие приложения могут писать, а мое приложение слушает его?какой подход лучше и почему?

1 Ответ

0 голосов
/ 19 октября 2018

REST API <-> REST API тесно связаны в время выполнения , и при наличии нескольких уровней сервисов это может привести к каскадным сбоям и сложным сценариям обработки ошибок.Кроме того, одна служба может переполнить другую, вызывая отказ в обслуживании.

Принимая во внимание, что подключение приложения -> q -> приложения слабо связано во время выполнения.Когда одна система не работает, очередь просто заполняется.Системы обмена сообщениями также выступают в качестве естественного буфера в сценарии «одна система производит слишком быстро», поскольку вторая система потребляет данных со скоростью, с которой вторая система может обрабатывать скорость, с которойпроизводитель отправляет данные.

При этом отправка запросов с запросом через обмен сообщениями добавляет ненужную задержку, поскольку «запрос» API фактически является запросом с опросом, а проблема быстрого получения и каскадных сбоев обычносмягчены.

TLDR: Вы захотите оба.API для очередей и обмена сообщениями для команд.CQRS можно применить здесь:

C - команда .. (создать, сохранить, удалить, выполнить какое-либо действие и т. Д.) Отправить через обмен сообщениями Q - запрос .. (поиск, список, получить и т. Д.) Отправить через API

...