Amazon SQS FIFO очереди

голоса
1

Мы используем AMAZON SQS FIFO очередь для обработки сервиса бронирования назначения для нашего приложения. После того, как сообщение попадает в очередь, он запускает функцию Amazon Lambda для управления процессом бронирования. Поскольку это очереди FIFO, мы гарантируем, что если 2 человека просить тот же слот, слот будет отдан первый запрос. Мой вопрос: есть ли способ (установка в очередях SQS FIFO, может быть?), Что гарантирует, что одно сообщение не вызывает функцию Amazon Lambda, пока предыдущее сообщение не завершит выполнение. Я просто пытаюсь избежать необходимости писать дополнительную логику (какой-то системы слот запирающего), чтобы гарантировать, что тот же слот не ориентированы на 2 спина к спине сообщений до первого завершения процесса «бронирования» , Благодарю.

Задан 07/11/2018 в 19:59
источник пользователем
На других языках...                            


1 ответов

голоса
2

Вот как я решил проблему.

Я бы не рекомендовал использовать SQS на всех и вам не нужны какие - либо из этих функциональных возможностей, предлагаемых SQS для USECASE.

Перемещенный от SQS к Kinesis потоков данных и установить размер пакета до 1 , чтобы вызвать Lambda. Это будет заботиться о нем. Кинезис потоков является буфером FIFO. Также Kinesis весы очень хорошо по сравнению с транзакционными очередями FIFO SQS.

Производитель -> Kinesis Data Streams -> (Lambda Trigger [Batch Size 1]) Lambda

Учитывая случаи ошибок,

Обработка ошибок:

Если лямбда не удается при обработке потоковых данных, ваша контрольная точка будет продолжать соединяться с неограниченным количеством попыток. Вы должны убедиться, что исправить лямбда и получить его движение вперед. Общее время, он будет продолжать соединяться равно общее время настроенных данных будут доступны в потоке.

Ошибка в Lamda:

Если у вас есть ошибка в лямбда, и вы хотите, чтобы вернуться с самого начала потока, вы можете сделать это.

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

Ответил 07/11/2018 в 21:58
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more