3

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

А можно ли предоставить это через веб-сервис, к которому обращается настольное приложение .Net (вид), или вам всегда нужно использовать веб-интерфейс с Azure?

ответ

3

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

Также посмотрите на мой ответ here для получения информации о патче, который необходим для хоста WCF.

И наконец: о распределенной обработке: если ваша обработка выполняется как атомное действие, но вы просто хотите масштабировать, сколько вещей вы можете обрабатывать, это очень просто! Вы просто создаете рабочую роль, которая читает из очереди и обрабатывает следующий элемент. Затем ваша служба WCF просто завершает запрос на выполнение работы. Когда рабочая роль завершает задачу и записывает ее результаты в хранилище, она считывает следующий запрос. Затем вы можете масштабировать количество экземпляров рабочей роли для обработки запросов через набор экземпляров виртуальных машин. Если, с другой стороны, вы хотите обработать отдельный рабочий элемент по нескольким рабочим ролям, вам нужно создать какой-то пользовательский механизм для инструктирования отдельных экземпляров роли сотрудника. Для этого вам, вероятно, потребуется настроить внутренние конечные точки для каждой рабочей роли и в своей службе WCF, разделить запрос среди экземпляров экземпляров с перечислением, а затем отправить прямое сообщение каждому экземпляру с его конкретным назначением.

+0

Спасибо. Это второй случай. Таким образом, служба WCF может напрямую контролировать, сколько экземпляров рабочих ролей создано и их точные конечные точки? – Peladao

+0

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

+0

Отлично, спасибо, принято. – Peladao