У меня есть клиент, который постоянно заливает данные полуреального времени в очередь sqs и хочет обрабатывать и хранить сообщения. Моя первая мысль состояла в том, чтобы использовать планировщик CloudWatch, который запрашивает лямбду с приблизительным количеством сообщений, которые лямбда затем порождает рабочими лямбда-выражениями для обработки и отправки данных в Firehose. Проблема в том, что каждый день в очередь будут помещаться сотни тысяч сообщений. Я также мог бы использовать EC2 для этого, но есть ли другой экономичный способ обработки очереди в полуреальном времени.
Лучший способ обработки сообщений SQS
Ответы (1)
Рекомендуемым решением для обработки потоковых данных в AWS Lambda является отправка данных в Amazon Kinesis, который затем может автоматически активировать функцию Lambda. Kinesis также сохраняет порядок сообщений. (Amazon SQS сохраняет порядок только при использовании очереди FIFO, пропускная способность которой ограничена.)
Если вы действительно ограничены обработкой из SQS, вы можете написать программу, которая извлекает данные из SQS и отправляет их в Kinesis, или просто берет из SQS и немедленно обработает данные. Такая программа может работать на инстансе Amazon EC2 или регулярно запускаться запланированным событием Amazon CloudWatch.
Главное, о чем нужно подумать, это как обращаться с переменными объемами. Если вы не можете мириться с длительными задержками между поступлением сообщений и их обработкой, вам потребуется либо использовать Lambda (автоматически масштабируемую), либо иметь достаточную вычислительную мощность для обработки всплесков.
Kinesis
. - person Asdfg   schedule 14.05.2018