Bonjour,
j'ai lu qu'un des avantages des servlets par rapport à CGI est qu'il permet la montée en charge et plus précisément le clustering et load-balancing.
Qu'entend-on précisément par ces deux termes ?
Merci,
Version imprimable
Bonjour,
j'ai lu qu'un des avantages des servlets par rapport à CGI est qu'il permet la montée en charge et plus précisément le clustering et load-balancing.
Qu'entend-on précisément par ces deux termes ?
Merci,
Les servlets s'exécutent dans un serveur qui met à leur dispo des ressources: pool de threads, pool de connexions à une base de données, etc.... C'est surtout pour cela qu'on parle d'avantages vs. CGI (les perfs sont aussi intéressantes vu qu'une nouvelle servlet ne signifie pas un nouveau processus).
Pour le load-balancing, il s'agit d'avoir plusieurs instance d'un serveur qui hébergent toutes la même application (la même servlet) et d'être capable de distribuer la charge (les utilisateurs) sur ces instances. Cette architecture propose une continuité de service (si un noeud tombe, l'application reste dispo sur les autres). Par contre, les utilisateurs connectés au noeud planté sont déconnectés/perdus.
Le clustering en soit ne veut pas dire grand chose. Je parlerai plutôt de reprise sur erreur (failover) qui signifie que dans une architecture de load-balancing, on peut aussi prendre l'initiative de répliquer les données d'un utilisateur (objet HTTPSession par exemple) en deux ou plusieurs noeuds d'un cluster. Ceci permet une continuité de session pour l'utilisateur (en plus de la continuité de service).
Le GRAND avantage de Java EE, c'est que ces deux techniques sont de la responsabilité du serveur d'application, pas de celle du développeur qui développe (presque) comme s'il n'avait qu'un seul utilisateur.