On Sat, 26 Oct 2002 12:28:03 +0200, Eric Schaefer wrote:
- Aufteilung der Clients an Kindprozesse (möglichst transparent), so daß
praktisch durchaus 100000 Clients gehandhabt werden können.
100000 ist wirklich sehr viel. Das bleiben bei Anbindung per 1GBit/s pro client keine 2 kbyte/s mehr.
Denk mal in eine andere Richtung als HTTP, IRC und Co. Stichwort Flugbuchungssysteme, PPS in sehr großen Firmen etc. Da sind zwar sehr viele Verbindungen offen, aber die greifen nicht alle gleichzeitig Daten ab.
Solche Low-Traffic-"Verbindungen" für wahnsinnig viele, eher sporadisch kommunizierende Clients würde man vermutlich mit UDP + Bestätigungsnachrichten besser realisieren können, so in Richtung Message Queuing. Der Overhead durch TCP wäre sonst größer als der Payload, von den verschwendeten Ressourcen fürs Verwalten der TCP-Verbindungen auf dem Server ganz zu schweigen. Bei der Lösung brauch man für den Netzwerkteil der Serveranwendung gar keine Threads oder irgendwelches Multiplexen von Verbindungen. Das Serverprogramm schaut sich nur grob an, wozu das eintreffende Paket dient und reicht es dann zur eigentlichen Verarbeitung an einen von mehreren langlaufenden Prozessen weiter.
Reinhard