Подтвердить что ты не робот

Насколько хорошо WCF масштабируется для большого числа клиентов-клиентов?

Есть ли у кого-нибудь опыт работы с тем, насколько хорошо построены веб-сервисы с помощью Microsoft WCF, масштабируется для большого числа пользователей?

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

Есть ли какие-либо особые ошибки, которые замедляли производительность или какие-либо уроки дизайна, которые позволили использовать этот уровень масштабируемости?

4b9b3361

Ответ 1

Чтобы ваше приложение WCF могло масштабироваться до желаемого уровня, я думаю, вам, возможно, потребуется настроить ваше мнение о статистике, которую должны выполнить ваши службы.

Вы упоминаете обслуживание "1000+ клиентов", но чтобы оценить, могут ли ваши службы выполнять на этом уровне, вам также понадобятся некоторые оценочные показатели использования, которые помогут вам рассчитать более простые статистические данные, такие как количество запросов на во-вторых, ваше приложение должно обрабатывать.

Как только мы закончили работу над проектом WCF, нам удалось получить 400 запросов в секунду на нашем тестовом оборудовании, что в сочетании с нашей ожидаемой моделью использования каждого пользователя, в течение 300 запросов в день указывалось, что мы можем обрабатывать в среднем 100 000 пользователей в день (при условии, что график плоского использования в течение дня).

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

Ответ 3

Вероятно, 4 самые большие вещи, с которыми вы можете начать сначала (помимо наличия только хорошего кода обслуживания), связаны с:

  • Привязки - некоторая привязка и протоколы, которые они запускают, быстрее, чем другие, tcp будет быстрее, чем любое из привязок http
  • Режим экземпляра - это определяет, как ваши классы распределяются против вызывающих сессий
  • Операции с одним и двумя способами - если ответ не нужен обратно клиенту, выполните односторонние действия
  • Дросселирование - Максимальные сеансы/согласные вызовы и экземпляры

Они разработали WCF для защиты по умолчанию, поэтому значения по умолчанию очень ограничены.