Лучший способ обработки сообщений SQS - PullRequest
0 голосов
/ 14 мая 2018

У меня есть клиент, который постоянно загружает данные в реальном времени в очередь sqs и хочет обрабатывать и хранить сообщения. Моей первой мыслью было использование планировщика CloudWatch, который запрашивает лямбда с приблизительным количеством сообщений, которые затем запускает лямбда-работники, чтобы обрабатывать и отправлять данные в Firehose. Проблема в том, что в очередь будут ежедневно помещаться сотни тысяч сообщений. Я мог бы также использовать EC2 для этого, но есть ли другой экономически эффективный способ обработки очереди в режиме реального времени.

1 Ответ

0 голосов
/ 15 мая 2018

Рекомендованным решением для обработки потоковых данных в AWS Lambda является отправка данных на Amazon Kinesis , которая затем может автоматически запускать функцию Lambda. Kinesis также сохраняет порядок сообщений. (Amazon SQS сохраняет порядок только при использовании очереди FIFO, которая имеет ограничения пропускной способности.)

Если вы действительно ограничены обработкой из SQS, вы можете написать программу, которая извлекает данные из SQS и отправляет их в Kinesis, или просто извлекает данные из SQS и немедленно обрабатывает данные . Такая программа может запускаться на экземпляре Amazon EC2 или может запускаться на регулярной основе запланированным событием Amazon CloudWatch.

Главное, что нужно учитывать, это как обрабатывать переменные тома . Если вы не можете принять длительные задержки между приходом и обработкой сообщений, вам нужно будет либо использовать Lambda (автоматически масштабируемый), либо иметь достаточную вычислительную мощность для обработки пиков.

...