Amazon SQS FIFO Queue - получите всего 10 сообщений, но все еще применяете счетчик MessageGroupId? - PullRequest
2 голосов
/ 24 января 2020

В моем проекте у меня есть группа удаленных узлов, на которых есть данные, которые нужно загрузить, и настроить очередь FIFO SQS, и я могу набрать sh и вытащить сообщение в / из него, чтобы загрузить данные.

Поскольку эти узлы являются удаленными, они могут иметь ограниченную пропускную способность, поэтому я использую MessageGroupId для принудительного выполнения не более 2 сообщений в полете на отдельный узел, чтобы гарантировать, что мы получим не более 2 одновременных соединений в любой момент времени ,

К сожалению, кажется, что единственная доступная опция при вызове receiveMessage() - это MaxNumberOfMessages, которая варьируется от 1 до 10, но также равна номеру MessageGroupId, разрешенному в ответе. Таким образом, это означает, что мои receiveMessage() вызовы должны быть 2 или меньше, чтобы предотвратить более 2 одновременных подключений к моим удаленным узлам одновременно.

Итак, мой вопрос здесь, я не прав? Кто-то, пожалуйста, скажите мне, что я неправ, и покажите мне вариант, где я могу установить MaxNumberOfMessages = 10 и что-то вроде MessageGroupIdMax в 2 или что-то еще. Я бы предпочел получать по 10 сообщений за раз и знать, что я получаю только 2 за MessageGroupId, поэтому мне не нужно так часто вызывать очередь.

Заранее спасибо!

1 Ответ

0 голосов
/ 07 февраля 2020

Итак, мы наняли консультанта для подтверждения того, что я предположил. Вы не можете отделить количество сообщений, полученных от максимального количества на один идентификатор группы сообщений, они одно и то же. Чтобы обрабатывать сотни групп сообщений в одном устройстве, вам нужна тонна рабочих, обрабатывающих очередь.

...