Vous pouvez déployer RabbitMQ en configuration de grappe sur au moins trois ordinateurs distincts.
Ce que vous devez savoir
- Le réseau entre les nœuds doit être fiable, avoir un seuil de performances élevé et une latence faible.
- Si vous déployez les nœuds sur des sites géographiques différents, vous devez pouvoir répondre aux exigences ci-dessus. Par exemple, la plupart des fournisseurs de services dans le cloud ont des liens très fiables entre leurs centres de données.
- Les nœuds doivent être dans des bâtis de serveurs différents pour plus de tolérance aux pannes en cas de déploiement sur site.
- Si un plus grand nombre de nœuds améliore la résilience, cela n'améliore pas les performances.
Il est recommandé d'avoir une maîtrise approfondie des configurations de RabbitMQ. Pour en savoir plus, voir la documentation officielle de RabbitMQ.
Grappes RabbitMQ à haute disponibilité
Dans une grappe à trois nœuds, la perte d’un seul nœud alors que les deux autres fonctionnent encore entraîne une dégradation des performances.
La configuration à haute disponibilité de RabbitMQ utilise l'algorithme de consensus Raft où plusieurs serveurs s'accordent sur des valeurs.
(N/2)+1
, où N
correspond au nombre de nœuds.
Nombre de nœuds de la grappe | Nombre de nœuds qui doivent être disponibles | Nombre de nœuds qui peuvent être défaillants |
---|---|---|
1 | 1 | 0 |
2 | 2 | 0 |
3 | 2 | 1 |
4 | 3 | 1 |
5 | 3 | 2 |
6 | 4 | 2 |
7 | 4 | 3 |
Plus la grappe est grande, plus son impact sur les performances est important. Lorsque des nœuds sont en panne et que la grappe fonctionne en mode dégradé, les performances sont très diminuées.
Pour configurer la haute disponibilité pour RabbitMQ, voir Configurer la haute disponibilité pour RabbitMQ.
Avantages : Grappes RabbitMQ distinctes
- Haute disponibilité
- L'interruption du service est minimale, même en cas de panne d'un nœud.
- RabbitMQ ne partage pas les ressources
- Les autres services n’utilisent pas les mêmes ressources et n’affectent donc pas les performances ou la disponibilité de RabbitMQ.
- Aucune indisponibilité en cas de mises à jour
- Vous pouvez mettre à jour la configuration RabbitMQ un nœud à la fois sans affecter la disponibilité des services.
Inconvénients : Grappes RabbitMQ distinctes
- Déploiement hautement complexe
- RabbitMQ doit être déployé sur au moins trois nœuds. Le processus de déploiement est long et fastidieux.
- Maintenance élevée
- Dans les rares cas où une grappe entière se déconnecte en raison de partitions réseau multiples, vous devez corriger le problème manuellement. Il est recommandé d'avoir une bonne maîtrise de la configuration et du dépannage de RabbitMQ.
Pour en savoir plus, voir la documentation officielle de RabbitMQ.
Qualité de service
Avec cette architecture de déploiement, la qualité de service dépend davantage de votre infrastructure technique. La qualité de service dépend directement de la qualité et de la fiabilité de vos infrastructures réseau.