Как уже упоминалось, 10.000 клиентов не просто. Для java NIO (возможно, дополненный отдельным threadpool для обработки каждого запроса без блокировки потока NIO) является обычным способом обработки большого количества клиентов.
Как уже упоминалось, в зависимости от реализации потоки могут на самом деле масштабироваться, но это зависит от того, сколько взаимодействий между клиентскими подключениями. Массивные потоки с большей вероятностью будут работать, если между потоками будет небольшая синхронизация.
При этом NIO, как известно, трудно получить 100% прав при первом его осуществлении.
Я бы рекомендовал либо попробовать, либо хотя бы взглянуть на источник Naga NIO lib на naga.googlecode.com. Кодовая база для lib мала по сравнению с большинством других инфраструктур NIO. Вы должны иметь возможность быстро выполнить тест, чтобы узнать, сможете ли вы запустить и запустить 10 000 клиентов.
(Источник Нага также происходит свободно изменять или копировать без приписывания оригинального автора)
Это уже ответит: http://stackoverflow.com/questions/592303/asynchronous-io-in-java – mparaz
Ниже приведены некоторые отличные рекомендации по NIB для NIO, но, ради обобщения, позвольте мне изложить это четко : Когда вы ожидаете нескольких клиентов, вы можете пойти по одному потоку на один сокет. Но когда вы ожидаете клиентов 10K, и я буду спорить (в зависимости от нагрузки ввода-вывода и процессора), если вы ожидаете чего-либо более 100 клиентов, вам НЕОБХОДИМО ПРОЙТИ НА НИХ-ПУТЬ (неблокирующий IO). Даже если ваша ОС упреждает 1000 раз в секунду, вы могли бы представить себе задачу обработки клиентов 10K? Не имеет смысла идти с блокировкой сокетов с таким количеством клиентов! – Jeach