Асинхронный (обратный вызов) ответ шлюза API после обработки с использованием лямбды или рабочих в EC2 - PullRequest
0 голосов
/ 14 сентября 2018

Мы создаем движок правил в AWS.Этот механизм состоит из базы данных Dynamos базы данных noSql для хранения информации, шлюза API для выполнения вызова и лямбда-функции для обработки вызова из API.Ничего нового здесь нет.

Алгоритм, который мы используем, очень эффективен для оценки правил для каждого события и отправки ответа.Этот ответ дает идентификатор процесса и достигнутые события вызывающей стороне.Очевидно, что время отклика начинает увеличиваться, если мы добавим больше правил или создадим сложную модель правил.Это нехорошо, когда нам нужно дать быстрый ответ на API.

Чтобы решить эту проблему, мы думали о решении, возвращающем ответ 200 OK и идентификатор процесса вызывающему и муравейному вызову одновременно.еще одна лямбда для обработки всех правил (это легко сделать).Проблема возникает, когда мы хотим сообщить вызывающей стороне результаты процесса, чтобы инициировать некоторые действия на стороне вызывающей стороны в зависимости от этого ответа.

Есть ли какое-либо решение для этого требования?Такие как обратный вызов асинхронного URL?Имитация позднего ответа, дополняющего первый ответ (200 ОК)?

Пример реализации AWS:

AWS Implementation Example

Я прилагаю изображение с моделью архитектуры, яхотел бы узнать некоторые решения, чтобы сделать точку 10 и 11.

Спасибо всем !!

1 Ответ

0 голосов
/ 14 сентября 2018

У меня была похожая проблема, и вот как я ее решил.

Шаги:

  1. Соберите запрос и бросьте кинезис, вернитесь сid процесса
  2. Запрос Kinesis доставить запрос по одному в RulesEngine
  3. Механизм правил Оценивает правила и записывает результаты обратно
  4. Средство чтения результатов будет считывать результаты с processid из Dynamodb и доставлятьэто для пользователя

Architecture Diagram

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...