Роли и экземпляры Azure

Могу ли я запустить веб-роль и рабочую роль в одном экземпляре или мне придется получить 2 отдельных экземпляра хостинга и заплатить вдвое больше, чем я бы в противном случае?

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

Мне было интересно, могу ли я просто запустить эти два в одном экземпляре или нет.


person Anup Marwadi    schedule 10.02.2012    source источник


Ответы (2)


«Рабочая роль» и «Веб-роль» - это простые шаблоны для «Windows Server 2008 с запущенным IIS» и «Windows Server 2008 без запущенного IIS». Ключ в том, что «роль» - это определение виртуальной машины Windows Server. Для каждой «роли» у вас есть один или несколько экземпляров.

В Windows Azure оба типа ролей имеют возможность устанавливать программное обеспечение, изменять параметры реестра и т. Д. Либо в сценарии запуска, либо в OnStart() обработчике, и оба позволяют запускать код в методе Run().

В вашем случае вы можете запустить свою веб-службу WCF в веб-роли, а затем в своем методе Run() (в той же роли) запустить процесс, который прослушивает сообщения очереди, отправленные вашими веб-службами WCF. Не нужно иметь новую роль.

Теперь: как только вы попадете в ситуации с большим объемом, вы можете разделить свой код на отдельные роли, чтобы вы могли масштабировать их независимо (как по размеру виртуальной машины, так и по количеству виртуальных машин).

Я опубликовал еще один ответ об этом здесь.

person David Makogon    schedule 11.02.2012

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

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

person Ranjith    schedule 11.02.2012