У меня есть три очереди SQS FIFO, в каждой из которых есть демон прослушивателя проекции данных в экземпляре EC2 в качестве модуля докера (SQL Server, PostgreSQL, Elastic Search и т. Д.)
Все очереди имеют те же настройки, что и ниже(Очереди недоставленных сообщений для настройки позже).
Queue Type: FIFO
Messages Delayed: 0
Content-Based Deduplication: Enabled
Default Visibility Timeout: 30 seconds
Message Retention Period: 14 days
Maximum Message Size: 256 KB
Это все часть архитектуры источников событий, которую я проектирую с использованием DynamoDB Stream => Lambda SQS Router => SQS FIFO Queues (из-за того, что SNS не поддерживаетОчереди FIFO в качестве подписчиков)
Content-Based Deduplication
включен, чтобы избежать дублирования сообщений в очереди, поскольку в Lambda Router всегда возможна ошибка для любой из очередей.
Теперь у меня также естьустановите MessageGroupId
для каждого сообщения в AggregateId, чтобы сгруппировать их, но на самом деле не понимаю, как это используется на стороне потребителя;
У меня только один потребитель на очередь SQS в данный момент, но что если яхочу масштабировать потребителей.Это приложение заботится о том, чтобы несколько потребителей не обрабатывали сообщения с одного и того же MessageGroupId;- что недопустимо, поскольку использование очередей FIFO связано с сохранением порядка событий в системе!