Сколько контекста экземпляра можно создать для механизма вызова в WCF

1

Я в процессе реализации службы WCF, в которой служба будет поражена множеством запросов одновременно. После получения запроса служба WCF откроет файл excel для чтения данных с помощью Interop и отправьте запрос обратно на сервер с данными, которые считываются из файла excel. Требуется 2-5 секунд для открытия и чтения файла в текущей системе, которая не использует WCF. Я хочу использовать механизм для каждого вызова для создания экземпляра в WCF. Мой вопрос состоит в том, что сколько таких запросов будет обрабатывать механизм Per-Call в WCF. Если у меня будет 100 запросов одновременно, механизм для каждого вызова сможет выдержать. Ваши предложения/идеи будут очень полезными.

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

Теги:
excel
wcf

2 ответа

2
Лучший ответ

После многоголоджинга я нашел ответ...

Поведение дросселирования: дросселирование WCF помогает вам установить верхний предел количества одновременных вызовов, экземпляров WCF и одновременных сеансов. WCF предоставляет три способа определения верхних пределов: MaxConcurrentCalls, MaxConcurrentInstances и MaxConcurrentSessions.

MaxConcurrentCalls: Ограничивает количество одновременных запросов, которые могут обрабатываться экземплярами службы WCF. MaxConcurrentInstances: Ограничивает количество экземпляров службы, которые могут быть выделены в данный момент времени. При использовании PerCall-сервисов это значение соответствует количеству одновременных вызовов. Для служб PerSession это значение равно количеству активных экземпляров сеанса. Этот параметр не имеет значения для режима Single instancing, потому что создается только один экземпляр. MaxConcurrentSessions: ограничение количества активных сеансов, разрешенных для службы

Все три вышеуказанные настройки можно определить в теге servicebehaviors, как показано в нижеприведенном фрагменте XML:

<serviceBehaviors> 

<behavior name="serviceBehavior"> 

<serviceThrottling maxConcurrentCalls="16"
maxConcurrentInstances="2147483647" maxConcurrentSessions="10" /> 

0

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

Как вы упомянули, ваша служба читает файл excel, и занимает 2-5 секунд. Если ваш файл execel не часто обновляется, используйте кеширование для хранения/извлечения данных. Было бы полезно увеличить время отклика. Кэширование на основе файлов пользователей, поэтому, когда ваше обновление excel автоматически получает последние данные.

  • 0
    Я. кеширование выйдет на сцену позже. Но если бы 100 или более созданных экземпляров повредили бы производительность службы WCF в случае механизма каждого вызова.
  • 0
    100 или более экземпляров не является большой проблемой, потому что IIS способен обрабатывать количество запросов одновременно. Многие веб-сайты с интенсивным трафиком, размещенные на IIS, но для повышения производительности или управления нагрузкой на сервер используют сервер балансировки нагрузки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню