У нас есть требование, когда нам нужно обрабатывать 1 сообщение за раз (не строгий порядок) от начала до конца с использованием SQS. В любом случае мы можем установить maxConcurrentConsumer на 1 в SQS?AWS-SQS: Как установить maxConcurrentConsumers?
Я просматриваю документы, но не могу найти это свойство для установки. На консоли Amazon я не вижу это свойство в меню очереди очереди. Во время извлечения сообщений мы можем указать, сколько сообщений мы хотим прочитать в одном опросе, но поскольку функция автомасштабирования AWS может создавать несколько потребителей (на самом деле микросервисы Springboot), мы не можем полагаться на это, установив этот предел на 1.
PS : Мы не можем контролировать отправителя сообщения, он может отправлять много сообщений в SQS.
Я знаю, что это не лучший способ проектирования, поскольку мы серьезно ограничиваем масштабируемость наших приложений. Дело в том, что мы заперты в продукт, который является потребителем этих сообщений, и он не может обрабатывать несколько потоков. Он работает в условиях гонки при большой нагрузке. В краткосрочной перспективе нам необходимо как-то ограничить количество экземпляров потребителей SQS до фиксации продукта. Я думаю, что единственный вариант здесь, как предлагается, - это вручную прокомментировать SQS в файле свойств приложения. Благодаря! – SanA
Вы пробовали играть в любой из настроек очереди SQS, особенно тайм-аут видимости? Это может не иметь никакого значения в зависимости от того, что именно вызывает условие гонки, но таймаут видимости контролирует, как долго сообщение невидимо для других потребителей. Поэтому, если вы установите более высокий тайм-аут видимости, вы можете помочь нескольким потребителям получить одно и то же сообщение одновременно. Опять же, это может не иметь особого значения, но хотелось бы упомянуть об этом. – jbird