Un équilibrage de charge optimal peut être très coûteux et compliqué. L'équilibrage de charge de base doit simplement garantir que chaque serveur traite à peu près le même nombre de hits à tout moment.
La méthode d'équilibrage de charge la plus simple consiste à fournir plusieurs enregistrements A dans DNS. Par défaut, l'adresse IP sera configurée selon une méthode de tourniquet. Il en résultera une répartition relativement uniforme des utilisateurs sur les serveurs. Cela fonctionne bien pour les sites apatrides. Une méthode un peu plus complexe est requise lorsque vous avez un site avec état.
Pour gérer les exigences avec état, vous pouvez utiliser des redirections. Donnez à chaque serveur Web une adresse alternative telle que www1, www2, www3, etc. Redirigez la connexion www initiale vers l'adresse alternative de l'hôte. Vous pouvez vous retrouver avec des problèmes de signets de cette façon, mais ils doivent être également répartis sur les serveurs.
Alternativement, l'utilisation d'un chemin différent pour indiquer quel serveur gère la session avec état permettrait des sessions de proxy qui ont basculé l'hôte vers le serveur d'origine. Cela peut être un problème lorsque la session d'un serveur défaillant arrive sur le serveur qui a pris le relais du serveur défaillant. Cependant, sauf logiciel de clustering, l'état sera de toute façon manquant. En raison de la mise en cache du navigateur, vous ne rencontrerez peut-être pas beaucoup de sessions changeant de serveur.
Le basculement peut être géré en configurant le serveur pour prendre en charge l'adresse IP d'un serveur défaillant. Cela minimisera les temps d'arrêt en cas de défaillance d'un serveur. Sans logiciel de clustering, les sessions avec état seront perdues si un serveur tombe en panne.
Sans basculement, les utilisateurs subiront un délai jusqu'à ce que leur navigateur bascule vers la prochaine adresse IP.
L'utilisation de services Restful plutôt que de sessions avec état devrait éliminer les problèmes de clustering sur le front-end. Les problèmes de clustering du côté du stockage s'appliqueraient toujours.
Même avec des équilibreurs de charge devant les serveurs, vous aurez probablement un DNS à tour de rôle devant eux. Cela garantira que tous vos équilibreurs de charge seront utilisés. Ils ajouteront une autre couche à votre conception, avec une complexité supplémentaire et un autre point de défaillance. Cependant, ils peuvent fournir certaines fonctionnalités de sécurité.
La meilleure solution dépendra des exigences pertinentes.
L'implémentation de serveurs d'images pour servir du contenu comme des images, des fichiers CSS et d'autres contenus statiques peut alléger la charge sur les serveurs d'applications.