2016-02-01 4 views
0

Мы используем шаблон cloudformation для создания нескольких экземпляров EC2. У нас есть Auto scaling и ELB. Каждый экземпляр EC2 работает со своим собственным сервером Tomcat и веб-приложением. Мы подключаемся к SQS для вывода сообщений и записи в базу данных RDS из этого веб-приложения.Несколько экземпляров EC2, подключающихся к одному SQS

Заявление об ошибке - Мы не хотим, чтобы оба экземпляра EC2 вытаскивали одно и то же сообщение из SQS и записывали в RDS. Не могли бы вы направить меня на то, как сделать этот процесс эффективным?

+0

Возможный дубликат (http://stackoverflow.com/questions/13484845/what-is-a-good-practice-to-reach-the-just-once-delivery-behavior-with-ama) –

ответ

-1

Ваш вопрос разумный, ознакомьтесь с пояснением ниже.

Сразу после получения сообщения компонент остается в очереди. Чтобы предотвратить описанную ситуацию, Amazon SQS блокирует их с тайм-аутом видимости, который является периодом времени, в течение которого Amazon SQS предотвращает получение и обработку этого сообщения другими компонентами-потребителями. Когда ваш экземпляр обработает сообщение, он должен вызывать команду, которая удаляет сообщение из очереди. Если по какой-то причине экземпляр не завершил работу во время таймаута видимости, сообщение снова станет доступным для других экземпляров.

Вы можете найти более подробную информацию здесь: [? Что такое хорошая практика для достижения поведения «Точно однократная доставка» с Amazon SQS] http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html

+0

Благодарим за объяснение. Это ясно для меня сейчас. – uma