Сине-зеленое развертывание с одиночной очередью sqs

В настоящее время у нас есть система, которая обрабатывает сообщения из внешней очереди сообщений JMS. В наших сине-зеленых развертываниях часть активации стека модифицирует группы безопасности, чтобы включить / отключить правила, необходимые для подключения к внешней очереди JMS, так что только активный стек может обрабатывать сообщения. Это прекрасно работает в нашей текущей среде, однако внешняя очередь не настолько надежна, поэтому мы собираемся заменить ее на темы SNS + очереди SQS. Мы планируем создать единую статическую очередь SQS, которая будет подписана на тему SNS. Проблема, с которой мы сталкиваемся, заключается в том, как включить / отключить доступ для чтения из очереди SQS, чтобы мы могли выполнять сине-зеленый и иметь только 1 стек, способный читать из очереди за раз?

Будет ли иметь несколько ролей экземпляра, и частью активации будет изменение роли, чтобы дать разрешение на чтение из работы SQS? Есть ли лучшее решение?

1 ответ

Вы можете создать очередь SQS для каждого нового развертывания. Но SNS статичен.

Итак, у вас работает версия v1. У вас есть тема SNS "SNS" и очередь SQS "v1", которые подписаны на "SNS".

Затем вы развернули новую версию с новым SQS "v2". Таким образом, вы должны подписать его на "SNS". И отписаться "v1" от "SNS". Вы можете получить дублирование во время этого переключения. Я рекомендую использовать дедупликацию, например Elasticache

Другие вопросы по тегам