Обычно при разработке серверных приложений, как вы слышите, разработчики говорят:
«Я начал с многопоточности и мог получить до ~ 1000 одновременно работающих пользователей
, а когда я использовал асинхронное программирование, число выросло до ~ 10000».
Обычно мы фокусируемся на коде.
Но предположим на мгновение этот идеальный сценарий:
Вы написали действительно хороший код, который может получитьочень большому количеству одновременно работающих пользователей,
, и у вас также есть очень сильное интернет-соединение с высокой пропускной способностью и очень низкой задержкой.
Так что если вы отложите эти 2 части в сторону (радиэтого вопроса) и предположим, что они идеальны,
нет ли ограничений между частями, которые находятся между ними?
"Части, которые находятся между ними", например:
- Сетевая карта (HW)
- Драйвер (SW)
- ОС (SW)
- CLR (SW) для .NET (предположим, что мы используем .NET)
Не работаетt один из них представляет некоторое ограничение?
Например, ограничениена количество открытых соединений TCP ..
Важное примечание:
Приложение не является веб-приложением, работающим на веб-сервере.
Это .EXE, работающее в Windows (на CLR, если быть точным).