рабочая роль Azure похожа на метод, выполняющий тяжелую работу и с балансировкой нагрузки? - PullRequest
1 голос
/ 24 декабря 2010

Ваша помощь поможет мне лучше понять Windows Azure.Заранее спасибо.

Я понимаю рабочую роль как метод (метод Run () в рабочей роли), который выполняет некоторые трудоемкие операции.Это позволяет мне иметь несколько экземпляров этой рабочей роли, чтобы ускорить процесс, если трафик увеличивается.

1) могу ли я иметь рабочую роль, которая делает больше, чем просто на:- метод, который создает диаграмму;- метод, который анализирует сом HTML;- метод, который обрабатывает изображение

. Я мог бы легко сделать все это с 4 рабочими ролями (один метод RUN () для каждой функции выше), но это очень дорого.Могу ли я поместить эти 4 вещи как методы в одну рабочую роль?

2) В чем недостаток размещения службы WCF для рабочей роли?

3) В чем недостаток разговорамежду экземплярами в одном решении Azure через WCF, застрахованный от очередей?Это медленнее?

Ответы [ 2 ]

4 голосов
/ 24 декабря 2010

Интерфейс для рабочей роли прост ... вы реализуете метод Run (), который никогда не возвращается, и мы вызываем его.То, что вы делаете, может быть чем угодно ... вы можете раскрутить 100 потоков, делая разные вещи, вы можете использовать Process.Start () для запуска отдельных процессов, вы можете запустить веб-сервер и т. Д.

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

Один из распространенных шаблонов - это предоставление рабочей роли извлечения работы из очереди.Преимущество очереди в том, что она гарантирует, что каждое сообщение будет доставлено хотя бы один раз (чтобы вы не потеряли работу).Он также распределяет нагрузку, потому что каждый работник может извлечь сообщение из очереди, когда он будет готов к дальнейшей работе.Если вместо этого вы используете WCF или какой-либо другой синхронный обмен данными, вы должны сами решить, как распределять работу и как восстанавливаться после ошибок (без потери работы).Это, конечно, возможно (и на самом деле, вероятно, быстрее, чем возврат в очередь), но сложнее построить надежный, масштабируемый сервис таким образом.

0 голосов
/ 30 декабря 2010

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

...