Очередь SQS - отправить сообщение без MessageGroupId? - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь отправить сообщение без MessageGroupId, потому что оно мне в принципе не нужно. У меня работает несколько микросервисов, которые должны читать из очереди в любое время, и если я добавлю один и тот же идентификатор группы, это означает, что только один сервис может читать эти сообщения одно за другим.

Теперь генерируем UUID как MessageGroupId звучит как плохая практика. Есть ли способ отключить MessageGroupId или отправить значение по умолчанию, которое не будет действовать как MessageGroupId?

const params = {
    MessageDeduplicationId: `${uuidv1()}`,
    MessageBody: JSON.stringify({
       name: 'Ben',
       lastName: 'Beri',
    }),
    QueueUrl: `https://sqs.us-east-1.amazonaws.com/${accountId}/${queueName}`,
};

sqs.sendMessage(params, (err, data) => {
    if (err) {
        console.log('error! ' + err.message);
        return;
    }
    console.log(data.MessageId);
});

ошибка! Запрос должен содержать параметр MessageGroupId.

1 Ответ

1 голос
/ 16 октября 2019

Мы не можем вставить сообщение в очередь без messagegroupid, если вы хотите, чтобы сообщения выбирались последовательно, тогда используйте один и тот же messagegroupid для всех сообщений, иначе используйте уникальное значение для каждого. С какими последствиями вы сталкиваетесь с использованием UUID в качестве messagegroupid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...