2009-05-06 3 views
1

Я создаю приложение, которое хочу поместить в облако. Это приложение имеет одну основную функцию.Azure: Будет ли это работать для моего приложения?

Он проводит сеансы сокета CLIENT от имени других пользователей (подумайте о Beejive IM для iPhone, где он проводит сеансы обмена мгновенными сообщениями для клиентов, чтобы поддерживать состояние в этих IM-сетях, что позволяет клиенту подключаться/разъединяться по желанию, без взлома подключение к сети IM).

Теперь, как я планировал сейчас, это то, что один «рабочий экземпляр» может обрабатывать только конечное число клиентских сеансов (скажем, 50 000 для аргумента). Эти сессии будут очень долговечными рабочими задачами.

Проблема, с которой я пытаюсь разобраться, заключается в том, что иногда мне нужно выполнять задачи для определенных клиентских сеансов (например: если мне нужно отключить сеанс клиента). С Azure я смогу поставить в очередь меньшую задачу, из-за которой может удаляться только экземпляр, на котором выполняется конкретный клиентский сеанс?

Прямо сейчас я рассматриваю GoGrid как поставщика услуг, и я решаю эту проблему с помощью программного обеспечения очереди сообщений Active Apache. Мое веб-приложение ставит задачи «отключить», которые назначаются конкретному идентификатору экземпляра. Поэтому каждый сеанс клиента присваивается конкретному идентификатору экземпляра. Затем экземпляр только отменяет задание «отключить», назначенные ему.

Мне интересно, можно ли сделать что-то подобное на Azure и как я обычно это делаю. Мне нравится идея не устанавливать много разных виртуальных машин для масштабирования, а вместо этого просто развертывать один пакет. Кроме того, было бы неплохо использовать очереди Azure вместо интеграции стороннего продукта, такого как Apache ActiveMQ или даже MSMQ.

ответ

1

Я был бы очень заинтересован в создании производственного приложения на Azure до тех пор, пока не будут завершены набор функций, цены и условия лицензирования. Во-первых, вы не можете даже провести сравнение затрат между ним и, например, GoGrid или EC2 или Mosso. Поэтому я не понимаю, как это могло бы стать победителем. Кроме того, мы знаем, что все эти системы будут иметь сбои по мере их созревания. Услуги Amazon гораздо шире, чем любые другие, и публично доступны в течение многих лет. ИМХО выбор Azure - это рецепт боли, когда они стабилизируются.

Вы считаете, что Amazon's Simple Queue Service для очередей?

+0

Вы правы. В конечном итоге это выглядит не очень хорошая идея, чтобы пойти с Azure прямо сейчас. Неопределенная цена - это то, что меня пугает больше всего. Статус «бета» также вызывает беспокойство в связи с тем, что мое приложение настроено на работу в июне. Спасибо за вход! – Redth

0

Я думаю, что вы можете абсолютно использовать Windows Azure для этого. Моя рекомендация заключалась бы в создании очереди для каждого сеанса, который вы отслеживаете. Затем вы можете отправить сообщение об отключении (например) в очередь для этого сеанса. Рабочий экземпляр, который обрабатывает это соединение, должен быть единственным опросом этой очереди, поэтому он должен обрабатывать выполнение задачи в этом соединении.

+0

Насколько хорошо это будет? Я надеюсь, что будет развернуто потенциально сотни тысяч сеансов ... Кажется, что очередь для каждого из них слишком много. – Redth

0

Что касается приложений, использующих подключения к сокетам для подключения клиентов, я бы дважды проверял, что разрешено, поскольку я думаю, что с Azure разрешено только HTTP и HTTPS-соединения.

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