2012-02-18 3 views
2

Сейчас:Создайте очередь push, используя Amazon SQS и SNS, как?

  • App # 1 вставки сообщения в SQS
  • .NET, работник роль опрашивает очереди и если нашли сообщение, отправленное его в App # 2 к процессу, подождите App # 2, чтобы закончить и повторный запуск опрос очередь
  • App # 2 процесса сообщение, которое является длительной и тяжелой задачей

в App # 2 могут занять довольно много времени, чтобы обрабатывать сообщения, и я не могу предсказать, сколько сообщений посылаются одновременно из приложения №1 система очередей гарантирует мне, что приложение №2 не исчерпывается ресурсами, и система может масштабироваться довольно легко. Но есть проблема, которую я бы хотел решить: я бы предпочел не иметь машину для запуска рабочей роли (теперь на Azure) просто для опроса очереди (все размещено в другом месте, где роль рабочего не является вариантом). Более того, опрос никогда не будет настолько восприимчивым, как толчок из-за пауз между опросами.

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

Я планировал дизайн, где приложение № 1 публикует в тему SNS, чьи подписчики являются SQS и App # 2. Приложение № 2 проверяет очередь SQS, и если она пуста, она завершает работу, если не обрабатывает сообщения один за другим, а затем завершает работу. Но как я могу закодировать приложение № 2 (прямо сейчас веб-службу .Net), так что, если он уже обрабатывает сообщение и получает уведомление от SNS, он ничего не делает и завершает работу (если не будет выполняться несколько обработок).

Любые предложения, как это сделать? Я читал this blog post, но я не знаю, как избежать обработки приложения для обработки нескольких сообщений одновременно.

ответ

2

Если вы думаете о роли SNS как способе сокращения интервалов ожидания сна, вы просто не меняете силу запроса, приложение №2 все равно обрабатывает сообщения, как это угодно, но если это " спит ", уведомление пробудит его и сразу начнет опрос.

0

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

Смежные вопросы