2008-09-04 3 views
18

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

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

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

ответ

15

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

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

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

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

2

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

  • креплениями - некоторые привязки, и они протоколы они работают на просто быстрее другие, ТСР будет быстрее, чем любой из HTTP привязок
  • Instance Режим - это определяет, как ваши классы распределяются на сессии звонящих
  • Один & Two Way Операции - если ответ не требуется клиенту, а затем сделать одностороннюю
  • Throttling - Макс Сеанс/Concurant вызовы и экземпляры

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

Смежные вопросы