Вызов API внешнего отдыха при обработке потока Kafka на стороне потребителя - PullRequest
0 голосов
/ 21 марта 2020

Давайте обсудим ситуацию.

Потребитель получил поток Kafka, сообщение в потоке необходимо обогатить и проверить на основе некоторого сервиса Validator Micro и вызова API Enricher. также он сохранил Сообщение в БД.

Поток такой - Потребитель Kafka Stream -> каждое сообщение -> API Restrol Validator Rest Call -> Call Enrich API -> Сохранить в БД через Persistence REST API.

Поскольку все вызовы REST являются синхронными, а остальные вызовы являются последовательными до вызова окончательного API-интерфейса службы Persistence Micro.

Очевидно, что потребитель Kafka Stream получает сообщения с высокой пропускной способностью.

Как этого добиться с помощью кодирования?

1 Ответ

0 голосов
/ 22 марта 2020

Не используйте REST.

Если у вас есть полный контроль над каждым участком конвейера, используйте API процессора Kafka Streams, чтобы получить предварительный вывод базы данных между 3 промежуточными темами, а затем используйте Kafka Connect для приемника. в базу данных.

Это масштабируется до гораздо лучших нагрузок, чем могут обрабатывать ваши REST API

Если у вас нет контроля, вам придется создать очередь задач / запросов topi c, из которой следующий вызов API будет получать запросы от другого потребителя и должен ждать, пока первый ответ API не будет получен до того, как

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