Веб-роли Azure. Смешивание MVC и WCF. Лучшие практики. - PullRequest
0 голосов
/ 12 января 2011

Мне нужны советы по созданию приложений Azure, которые предоставляют интерфейс ASP.NET MVC 2 UI и службы WCF.

Оба должны быть доступны потребителям через Интернет, а пользовательский интерфейс также использует службы WCF.

Чтобы минимизировать эксплуатационные расходы для небольших развертываний, но при этом иметь возможность масштабирования, я хочу разместить как пользовательский интерфейс, так и службы WCF в одной и той же веб-роли. Хотя в других случаях мне может потребоваться развернуть службы WCF на их собственных веб-ролях или рабочих ролях, чтобы их можно было независимо масштабировать.

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

Мне не удалось найти много рекомендаций по совместному размещению служб пользовательского интерфейса и WCF в Azure.

Каким шаблонам я должен следовать?

Ответы [ 2 ]

2 голосов
/ 12 января 2011

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

В WCF вам следуетбыть в состоянии выставить внутреннюю конечную точку и подключиться к ней через 127.0.0.1 или localhost.Это должно обойти пересечение границы центра обработки данных и, следовательно, дополнительные сборы и задержки.

1 голос
/ 13 января 2011

Рассмотрите возможность запуска приложения в качестве полной роли IIS и запускайте службы и сайт как два разных сайта / роли.Таким образом, если вам нужно разделить их на любом этапе, это просто конфигурация.

Добавление в IgoreK, прелесть WCF - абстракция реализации.Если вы хотите запустить один экземпляр, сделайте зацикливание - вы даже можете использовать привязку именованного канала для повышения производительности.

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

...