2012-01-09 2 views
0

Мне нужно создать систему, которая может обрабатывать 200K запросов в секунду на каждом компьютере по HTTP. Служба wcf должна быть размещена под win service. Интересно, может ли wcf справиться с таким требованием? Какая наилучшая конфигурация системы/наилучшая конфигурация?Как я могу обрабатывать 200K запрос в секунду в wcf

Сама машина довольно тяжелая 32G RAM и 8 ядро ​​(или более), и может быть повышен в случае необходимости

Могу ли я обрабатывать такое количество запроса в каждой отдельной машине с ФОС, используя HTTP?

+0

Что делает ваша система, когда она получает запрос? –

+2

Для сравнения, Google [оценивается] (http://searchengineland.com/by-the-numbers-twitter-vs-facebook-vs-google-buzz-36709) обрабатывает 34 000 запросов в секунду. Некоторые приблизительные вычисления: на одной машине доступно около 60 тыс. Портов для подключения. Таким образом, у вас никогда не может быть больше такого количества одновременных запросов. Таким образом, если запрос приближается к 0.3s для обработки, вы увеличиваете количество портов. Честно говоря, я не думаю, что вы можете обрабатывать множество запросов на одной машине. – Andreas

ответ

3

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

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

0

Необходимо предоставить дополнительную информацию об этом.

Получите запрос и его необходимо обработать немедленно?
Можете ли вы сохранить данные запроса и делегировать обработку другому потоку/процессу? Есть ли способ масштабировать систему, а не вверх?
На самом деле это единственная часть инфраструктуры, в которую вы можете развернуть материал?

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

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