Цитата:
Сообщение от krisadr
Как видел в подписи у одного мембера зоны "то что написано в l2j это порнофильм с дешовыми порно актерами"(смысл такой)
|
Призыв меня удался
Цитата:
Сообщение от krisadr
Но сетевой движок в один поток на селекторе и nio... давайте почитаем про проблемму 10к соединений и какие подходы с ним справляются... да и вообще сервер в один поток - это перебор сокетов в цикле что на мой все таки взгляд является не правильным подходом... да такой сервер может выдержать большое кол-во подключений, но время отклика увеличивается причем на много...
|
Лирика: как раз таки с проблемой 10к справляются с помощью селекторов, только, обычно, нескольких, которые работают параллельно, но уж никак не созданием по треду на каждого клиента. И работает селектор далеко не так, как представлено
В то время, когда это все писалось, еще не было NIO2.0 (async network), был выбор: писать на cpp для каждой платформы свою библиотеку (poll/epoll для линуксов и WSA для вин; про бздю вообще молчу), которую потом еще придется поддерживать, или же писать все на первом NIO.
До выхода J7 (в котором появился NIO2.0), особого смысла от нескольких RW Selector-воркеров не было, т.к. нативный поток полинга оставался одним. С вводом NIO2.0 JVM научилась их масштабировать (даже если не использовать async), поэтому, именно, после релиза J7, имело смысл что-то и как-то делать, но не раньше.
Цитата:
Сообщение от krisadr
а у фреймворка есть такая мощная вещь как асинхронные операции (оптимизированный пулл потоков) с помощью которого можно справится с 10000 соединениями...
|
Конечно же, до выхода J7 существовал Netty, Grizzly и другие, но их использование... Хм... Об одном только Netty я могу много рассказать, особенно, про замечательный баг 100% CPU Use, который у них лежит на багтрекере уже лет десять, в состоянии Open.
В общем и грубо говоря: они предназначены для веб-серверов, но уж никак не для гейм лоад сети.