Java Sockets
One thread per connection?
Synchrone I/O, Single connection per thread
Problems:
- Synchronisation
- Limited Scaling
Asynchrone I/O, Single thread per server
- I/O Event based
- CPU limitiert
Java NIO
- Server wird benachrichtigt, wenn ein I/O Event verarbeitet werden kann
- Zustand der Kommunikation zum Client muss gespeichert sein
- Pools von threads die verschiedene Ebenen behandeln
- Mehrere back-end Kommunikationsthreads
- Worker-Threads
- DB-Threads
Nach http://rox-xmlrpc.sourceforge.net/niotut/
Single selecting Thread verwenden: Input/Output in selecting Thread behandeln, Writes queuen, Channels lesen und Daten in Worker thread lesen.
NIO vs. IO (asynchronous vs. synchronous)