Java TCP server pro 2000 klientů

KapitánRUM

Java TCP server pro 2000 klientů
« kdy: 09. 11. 2010, 12:02:47 »
Ahoj,

píšu v Java TCP server pro cca 2000 souběžných spojení.
Na rozdíl od předchozích situací spojení budou souběžná, tj. klienti jsou stále připojení.
Příklady které jsem našel jsou buď příliš jednoduché a nebo jim už naopak nerozumím.

Proto jsem navrhl následující řešení:
Každé vlákno má svůj vlastní list<klientů>, který opakovaně prochází(foreach) a vyřizuje jejich požadavky.

Zní to dobře, jenže se s tím nějak drbu a přemýšlím, jestli to je správně.
Mohl bych se pokusit pro každého klienta vytvořit samostatné vlákno a nějak plánovat jejich běh, ale to mi přijde jako horší řešení.

No a teď babo raď.....
« Poslední změna: 09. 11. 2010, 13:17:19 od Petr Krčmář »


Re: Java TCP server pro 2000 klientů
« Odpověď #1 kdy: 09. 11. 2010, 13:48:01 »
Podle mého názoru je to ideální kandidát na použití asynchronního IO. V Javě je podpora od verze 1.4, jedná se o třídy v balíčku java.nio, přesněji java.nio.channels. O něco (v některých případech o hodně) pohodlnější je ale asi použití některé nadstavby, například Apache MINA http://mina.apache.org/ nebo xSocket http://xsocket.sourceforge.net/ (s tím mám osobně velmi dobré zkušenosti).

KapitánRUM

Re: Java TCP server socket pro 2000 klientů
« Odpověď #2 kdy: 11. 11. 2010, 17:25:26 »
Děkuji za radu.

Zde je odkaz na článek přímo zde na rootu:
http://www.root.cz/clanky/sitovani-v-jave-new-io/

Zde je odkaz k tématu kdyby to někdo hledal:
http://www.exampledepot.com/egs/java.nio/NbClient.html

V současnosti se připravuje NIO.2 viz JDK7

Já mám bohužel peška, prostě to nechápu. Než se s tím drbat 14 dní, raději to uplácám v C#.  :o ??? >:(