Netty
Applications réseaux
Problématique
Aujourd’hui les projets « sérieux » liés au web se doivent de prendre en compte dès leur conception la gestion de la mise à l’échelle. C'est-à-dire, que se passe t-il si le nombre d’utilisateur augmente ? Peut-on facilement gérer un afflux de clients ?
Il existe deux façons d’écrire des serveurs : de façon bloquante ou non.
Bloquant
Sur le schéma 3.1 est présenté le mode bloquant. Ici chaque thread du serveur va être lié à une seule connexion à la fois. Cela implique que le nombre de connexions simultanées est limité au nombre maximum de threads qu’il est possible de créer, ce qui est vite limitant quelle que soit la machine. L'avantage est que les clients qui ont réussi à se connecter sont traités plus rapidement.

Schema 3.1 - Fonctionnement d'application réseaux bloquante
Non bloquant
Sur le schéma 3.2, on peut voir une façon non bloquante de faire en utilisant des sélecteurs. Ici chaque thread peut gérer plusieurs connexions en même temps. Le sélecteur ne va lire ou écrire que si besoin. Cela permet également de régler le problème des clients lents car ils ne bloqueront pas un thread inutilement. Ce type d'application peux gérer plus de connexions simultanées, mais le temps de traitement peut être plus long.

Schema 3.2 - Exemple de fonctionnement d’applications réseaux non bloquantes