Как бы вы реализовали обмен мгновенными сообщениями в Windows Azure

Привет, мы думаем реализовать функцию чата в нашем веб-приложении. (MVC 3 работает в Azure), например приложения Facebook или Gmail.

Идея по этому вопросу состоит в том, чтобы узнать мнение вашей технической архитектуры по этому поводу.

Как бы вы его спроектировали и какие службы вы бы использовали (рабочая роль, очередь, blob, Sql azure и т. Д.).

Спасибо


person Francesco    schedule 16.01.2012    source источник


Ответы (2)


Обмен мгновенными сообщениями - это асинхронная доставка сообщений между несколькими издателями и подписчиками. Похоже, это идеальный рецепт для Azure Queues.

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

Положительным моментом этого подхода является его простота. Обратной стороной этого подхода является частота проверки очередей для каждого пользователя и связанные с этим затраты.

Если у вас 10 000 пользователей, вошедших в систему обмена мгновенными сообщениями, и приложение проверяет их очередь один раз в секунду, это 1 пенни в секунду. Что составляет ~ 26 тысяч долларов в месяц.

person Igorek    schedule 16.01.2012

Служебная шина Windows Azure обеспечивает обмен сообщениями «публикация-подписка» с темами, которые можно использовать в этом сценарии. Для этого вы можете увидеть пример чата на основе Silverlight: http://servicebus.codeplex.com/SourceControl/changeset/view/9715

Кроме того, вы можете увидеть образец многоуровневого приложения, в котором показано использование тем / подписок служебной шины из ролей Web / Worker здесь: http://code.msdn.microsoft.com/windowsazure/Multi-Tier-application-6c033cad

person Abhishek Lal    schedule 20.01.2012