Возможность обрабатывать 10000 одновременных запросов - как это сделать? - PullRequest
1 голос
/ 14 февраля 2011

Мой сервер должен иметь возможность обрабатывать 10000 запросов одновременно.

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

Нужно ли мнесоздать разные темы для каждого приходящего запроса?

1 Ответ

3 голосов
/ 14 февраля 2011

Это можно сделать с помощью тега serviceThrottling в файле app.config:

<serviceThrottling maxConcurrentSessions="10000" maxConcurrentCalls="1000"/>

Вам не нужно создавать какой-либо поток, WCF будет обрабатывать все это длявы, используя пул потоков.


При этом, если все эти 10000 запросов приходят в одно и то же время, и все они должны обрабатываться одновременно (скажем, например, что все они увеличиваюти если ни один из этих вызовов не будет возвращен до того, как он достигнет 10000), .net CLR может иметь проблемы с созданием 10000 необходимых потоков ...

Я думаю, что вам следует внимательно изучить требования к параллелизму.Увеличение maxConcurrentCalls до 10000 - это не серебряная пуля, оно не сможет волшебным образом устранить все другие узкие места и / или ограничения производительности, которые могут у вас быть где-то еще в вашем программном обеспечении (и в вашем оборудовании!)обработка x одновременных запросов не поможет, если все эти потоки используют одно соединение с базой данных, например!

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