Будет ли это эффективно?
Это зависит от реализации службы, от максимального количества запросов, которыми она может управлять в течение определенного периода времени. Эффективность является относительной мерой: давайте предположим, что ваш сервис способен обрабатывать 20 сообщений в секунду, если ваше требование должно обрабатывать 10 сообщений в секунду, то ваш сервис эффективен. Но если требование 30, то это не так.
Будет ли оно масштабироваться?
Еще раз, это не связано с хостингом. Ваши услуги без гражданства? в противном случае они, вероятно, не будут сильно масштабироваться, поскольку распределение нагрузки невозможно.
Это будет управляемым?
Вероятно, нет:
- вам нужно, чтобы пользователь вошел в систему на сервере, чтобы запустить приложение
- он не запускается автоматически с сервера
- он не может автоматически перезапустить при сбое
- он не создает экземпляры службы проактивно
- не предоставляет (без специального кода) способ проверки работоспособности службы
Один экземпляр? Несколько потоков?
Если ваша служба не поддерживает состояние между вызовами на одного клиента, настройте его как «один экземпляр на вызов без многопоточности» -> Нет параллелизма, высокая пропускная способность
Если ваша служба поддерживает состояние, то настройте его как «один экземпляр на сеанс и многопоточность», чтобы позволить клиенту выполнять параллельные вызовы. Будьте осторожны с проблемами параллелизма и защищайте свои ресурсы.
Если ваша служба не поддерживает состояние для каждого клиента, но хранит некоторые глобальные данные, сохраняемые для всех вызовов, рассмотрите «один экземпляр на службу и многопоточность». Имейте в виду возможные проблемы параллелизма. В этом вы также можете использовать «один экземпляр на вызов» и оставить глобальное хранилище вне службы.