Avatar billede mercutio Nybegynder
06. august 2005 - 19:07 Der er 14 kommentarer og
1 løsning

Spil med mange clienter. Hvordan hånteres forbindelserne

F.eks. et spil som poker. Hvordan hånterer de forbindelserne mellem deres server og alle clienterne? Der er jo mere end 30.000 clienter nogle gange.

Er det bare en socket connection? Eller hvordan gør de det?
Avatar billede arne_v Ekspert
06. august 2005 - 19:14 #1
Det er jo nok lidt forskelligt, men et bud på en tommelfinger regel:

-1000 klienter: en server, en socket per client, en tråd per client
1000-10000 klienter : en server, en socket per client, få tråde, NIO
10000- klienter : flere servere,  en socket per client, få tråde, NIO, clustering
Avatar billede arne_v Ekspert
06. august 2005 - 19:15 #2
alternativer til TCP sockets:

UDP

HTTP (som bruger TCP men som ikke holder connection åben)
Avatar billede mercutio Nybegynder
06. august 2005 - 22:07 #3
Hvad står NIO for?
Avatar billede arne_v Ekspert
06. august 2005 - 22:13 #4
new IO

java.nio pakken

den understøtter select på sockets
Avatar billede simonvalter Praktikant
06. august 2005 - 22:13 #5
Avatar billede arne_v Ekspert
06. august 2005 - 22:17 #6
Avatar billede arne_v Ekspert
06. august 2005 - 22:17 #7
Avatar billede mercutio Nybegynder
06. august 2005 - 23:00 #8
Arne på mit arbejde har vi lavet en client server løsning hvor vi bruger web services. Det er derfor jeg spør... Bør man ikke bruge webservices til en løsning hvor man kan have 5000 clienter der alle kan connecte hvert sekund ?
Avatar billede arne_v Ekspert
06. august 2005 - 23:03 #9
web services bruger HTTP og derfor behøver du ikke en socket connection per client,
hvilket undgår alle de problemer som NIO adresserer

web services er en fremragende protokol over internet eller mellem
forskellige teknologier

det er også en lidt tung protokol, hvis de 5000 klienter er meget aktive, så skal
du nok have nogle heftige servere
Avatar billede mercutio Nybegynder
06. august 2005 - 23:05 #10
Ok jamen tak for svarene. Får jeg et svar?
Avatar billede mercutio Nybegynder
06. august 2005 - 23:06 #11
I hvilket tilfælde vil du så foreslå NIO frem for webservices? og omvendt?
Avatar billede arne_v Ekspert
06. august 2005 - 23:08 #12
very high volume over LAN => TCP sockets og NIO lyder som en god ide
Avatar billede arne_v Ekspert
06. august 2005 - 23:08 #13
og et svar
Avatar billede mercutio Nybegynder
06. august 2005 - 23:11 #14
F.eks. tv2's spille side. Kunne de lige så godt have brugt webservices?
Avatar billede arne_v Ekspert
06. august 2005 - 23:25 #15
Nu kender jeg ikke TV2's spille side.

:-)

Jeg vil formode de har så mange brugere at hvis de bruger sockets så bruger
de NIO.

Internet gør web services oplagt (det er f.eks. ret normalt at folk slet
ikke kan oprette en socket connection fra arbejde af).

Men SOAP over HTTP er en tung protokol - mine erfaringer siger ca. 5000
requests/minut/CPU.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester