Масштабируемость веб-сервисов .NET - PullRequest
1 голос
/ 14 марта 2010

Может кто-нибудь помочь мне с вопросом о веб-сервисах и масштабируемости? Я написал веб-сервис как фасад нашей системы управления документами и должен подумать о проблемах масштабируемости. В каких областях я должен следить за производительностью и доступностью?

Заранее спасибо

Ответы [ 5 ]

3 голосов
/ 14 марта 2010

Производительность не зависит от масштабируемости.Масштабируемость означает, что вы можете добавить больше серверов для линейного увеличения пропускной способности системы (то есть больше клиентских подключений).Лучший способ начать с веб-сервисов без сохранения состояния.Таким образом, любой клиент может вызывать любой из n экземпляров веб-сервиса на n разных машинах.Если в конце концов существует общая база данных для сохранения, это в конечном итоге станет вашим узким местом.Есть способы уменьшить это с помощью разделения и разделения данных, но только когда вы достигнете этого.

1 голос
/ 14 марта 2010

Прежде всего, решите, каково допустимое поведение вашего веб-сервиса. Что должно быть в состоянии справиться - 1000 соединений в секунду? Какое время отклика будет у каждого соединения?

Затем вам нужно автоматизировать использование вашего веб-сервиса, чтобы вы могли провести стресс-тестирование системы.

Что происходит, когда у вас 100 запросов в секунду? 1000? 10000?

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

0 голосов
/ 14 марта 2010

Ну, это действительно зависит от того, что вы делаете в своем веб-сервисе, но единственный способ узнать это - смоделировать множество пользователей и измерить его.

Посмотрите на мой ответ на этот вопрос: Измерение производительности

Когда мы тестировали наш код в этом поместье (где веб-службы размещались в службах Windows), мы обнаружили, что узким местом является проверка подлинности каждого пользователя в службе фасада. В частности, компонент Windows LSASS использовал большую часть процессора. К счастью, мы смогли создать новые машины, каждая из которых имела службу фасада, которая затем обратилась к нашему основному набору веб-служб. Это позволяет нам масштабировать до большого числа пользователей (в районе 100 000 пользователей, обычно использующих наше программное обеспечение).

0 голосов
/ 14 марта 2010

Некоторая производительность, безусловно, связана с вашим собственным кодом, но давайте предположим, что он уже оптимизирован. В этот момент дополнительные проблемы масштабирования производительности связаны с хостом службы (например, IIS), машинами, на которых он размещен, и скоростью их сетевого (межсетевого / внутреннего) соединения. Вам нужно будет сделать несколько тестов скорости, чтобы быть уверенным в этом.

0 голосов
/ 14 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...