Очереди Windows Azure, WCF, интеграция MSMQ

У меня есть сценарий, в котором мне нужно настольное консольное приложение для связи с очередью Windows Azure... самое важное, что сообщение в конечном итоге будет получено сервером. Кроме того, настольное приложение иногда может быть отключено от Интернета. В традиционном подходе WCF+MSMQ вы сможете отправлять сообщения, которые будут кэшироваться в MSMQ, пока MSMQ не сможет достичь MSMQ сервера и отправить сообщение. Что эквивалентно, когда Windows Azure находится на стороне сервера?

Возможно ли использовать такой же подход, когда MSMQ просто взаимодействует с очередью Windows Azure, а не с MSMQ на Windows Server?

Может быть, Windows Azure Queue - это неправильный подход? Я слышал о том, что называется буфером сообщений, но не знаю, что это такое (пока!).

Спасибо за вашу помощь

Kris

3 ответа

Решение

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

Обновление Возможно, мой ответ не был ясен. Исходя из вопроса, клиент иногда подключается к Интернету, поэтому вам нужен способ парковки сообщения до тех пор, пока внутренности не распутаются. Используя Windows, самый простой способ сделать это - поместить сообщение в локальную очередь MSMQ. Затем у вас есть служба мониторинга этой очереди. Если есть сообщение, и оно может добраться до службы, размещенной в облаке, оно отправляет сообщение. После того как сообщение было отправлено, его можно удалить из очереди.

Чтобы поместить сообщение в хранилище очередей Azure, необходимо подключиться к Интернету. Если вы хотите работать с отключенными сценариями, это полностью ваше дело. Я бы оставил решение очень простым и использовал бы локальное хранилище, такое как SQL Server Compact, а затем отправлял бы сообщения, как только появится возможность подключения, возможно, с помощью службы Windows (чтобы вам не нужно было запускать приложение для настольных компьютеров),

Это можно сделать с помощью буферов сообщений служебной шины Azure AppFabric - нет необходимости использовать очередь. Посмотрите соответствующие примеры загрузки на следующем сайте: http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11 - они должны ответить на ваши вопросы гораздо лучше, чем я.

С уважением

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