Clustering et équilibrage de charge
Qu’est-ce que le Clustering et l’équilibrage de charge
Le clustering de serveurs est une méthode permettant de transformer plusieurs serveurs informatiques en un cluster, qui est un groupe de serveurs qui agit comme un seul système.
L’équilibrage de charge concerne la répartition des charges de travail sur plusieurs ressources informatiques, telles que les ordinateurs, les clusters de serveurs, les liens réseau, etc. L’équilibrage de charge vise à optimiser l’utilisation des ressources, à maximiser le débit, à minimiser le temps de réponse et à éviter la surcharge de toute ressource unique.
Un ensemble de répliques MongoDB est un groupe de mongod
processus qui maintiennent le même ensemble de données. Les ensembles de réplicas offrent redondance et haute disponibilité et constituent la base de tous les déploiements de production.
La haute disponibilité (HA) est une caractéristique générale d’un système, qui vise à assurer un niveau convenu de performance opérationnelle, généralement de disponibilité, pendant une période supérieure à la normale.
RESTHeart a toujours été un très bon choix pour les Microservices et autres styles d’architecture distribuée. Il a été déployé avec succès avec des technologies de clustering telles que AWS ECS et Fargate, Kubernetes et bien d’autres.
Comment ça marche
RESTHeart reçoit essentiellement des requêtes HTTP et les transforme en requêtes MongoDB, via le pilote Java. La création d’un cluster a consisté à placer un équilibreur de charge HTTP simple au-dessus de la technologie de clustering choisie, exactement comme on le ferait avec n’importe quel autre serveur HTTP.
RESTHeart est sans état pour toutes les fonctionnalités, sauf pour le gestionnaire de jetons par défaut utilisé pour l’authentification des jetons. Cette implémentation fournie avec RESTHeart OSS contient les jetons en mémoire. En conséquence, il ne prend pas en charge le clustering.
Ainsi, un cluster de nœuds RESTHeart nécessite des sessions collantes lors de l’utilisation de l’authentification par jeton, sinon le nœud RESTHeart pourrait recevoir un jeton d’authentification créé par une autre instance, ce qui entraînerait une erreur HTTP 401 “Non autorisée “.
Comme les instances RESTHeart ne communiquent pas directement (pour éviter des étapes de synchronisation coûteuses), elles ne peuvent pas valider les jetons d’authentification créés par d’autres instances du même cluster. Pour surmonter cette situation, l’équilibreur de charge HTTP insère un jeton de session collant dans un cookie, puis gère le flux de communication des clients vers les instances RESTHeart en conséquence. Les sessions collantes, d’un point de vue architectural, introduisent un niveau d’état dans le système et leur délai d’expiration doit être soigneusement réglé.
Capacités EE RESTHeart
L’achat d’une licence commerciale RESTHeart peut être configuré plus facilement, sans avoir besoin de sessions collantes. Cela permet un déploiement entièrement sans état.
Avec la licence, vous pouvez obtenir un gestionnaire de jetons spécialisé qui crée des jetons signés cryptographiquement qui peuvent être reconnus par n’importe quel nœud RESTHeart du cluster sans communication directe ni synchronisation entre eux: rapide, simple et sûr.
Pour plus d’informations, reportez-vous à la page de documentation du gestionnaire de jetons.
En résumé, les étapes de niveau supérieur pour une configuration RESTHeart + MongoDB hautement disponible sont les suivantes:
-
Créer un jeu de répliques MongoDB;
-
Créer un cluster RESTHeart connecté au jeu de réplicas MongoDB;
-
Placez un équilibreur de charge HTTP dessus.
Si vous souhaitez en savoir plus sur le clustering, l’équilibrage de charge et la haute disponibilité, veuillez nous contacter.
Leave a Reply