Очередь нужна, когда я использую шлюз / лямбда aws api в качестве веб-сервера? - PullRequest
0 голосов
/ 23 марта 2019

Я изучаю Apache Kafka как очередь.Я понимаю, что очередь нужна, когда я запускаю веб-сервер, чтобы не сбрасывать пакетный трафик.Очередь может помочь не сбрасывать данные за часы пик.Если я не использую Очередь, единственное, что я могу сделать, - это разместить больше серверов, чем трафик в час пик.Это правильно?

Если это правильно, предположим, что я использую шлюз aws api + lambda для веб-сервера.AWS лямбда может быть автоматическим масштабированием.Так что мой лямбда-сервер никогда не сбрасывает пакетный трафикЭто означает, что очередь, такая как Kafka, в этом случае не нужна?

Конечно, если мне нужна какая-либо архитектура паба / саба, нужна Kafka.

Это правильно, что я думаю?

1 Ответ

0 голосов
/ 23 марта 2019

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

Kafka предназначен для потоковой передачи данных в режиме реального времени;вещи, где вы хотите обрабатывать данные немедленно, такие как расшифровка видео.Это отличается от pub / sub.Потребители запрашивают данные у Кафки.Если процесс требует объединения данных из нескольких входных источников на постоянной основе, то Kafka подходит для этого.Другими словами, если размер входных данных не имеет верхней границы, потоковая обработка является хорошим выбором.Аналогичный сервис, доступный в AWS, - Amazon Kinesis.

Pub / sub (например, Amazon SNS, который может легко запускать лямбда-функции) лучше подходит для случаев, когда размер ввода или размерполезный пакет, может быть легко определен, но где данные должны обрабатываться практически в режиме реального времени.В пабе / подсистеме события публикуются для подписчиков, а не подписчиков, запрашивающих их.

Другой вариант - это очередь, подобная Amazon SQS, которая может быть полезна, если в системе есть узкое место, напримеремкость записи в базу данных, или ограничение параллелизма LambdaВ этой архитектуре потребители запрашивают элементы из очереди, когда они готовы их обработать, поэтому это лучше для случаев использования, когда результаты не требуются немедленно.

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