RabbitMQ peut être déployé dans une configuration en grappe sur un minimum de trois machines autonomes.
Ce que vous devez savoir
- Le réseau entre les nœuds doit être fiable, avoir un seuil de performance élevé et une faible latence.
- Si vous déployez des nœuds dans des régions géographiques distinctes, vous devez être en mesure de garantir les paramètres ci-dessus. Par exemple, la plupart des fournisseurs de services en nuage disposent de liaisons très fiables entre leurs centres de données.
- Les nœuds doivent être situés sur des racks de serveurs différents pour une meilleure tolérance en cas de déploiement sur site.
- Si l'augmentation du nombre de nœuds améliore la résilience, elle n'améliore pas les performances.
Il est recommandé d'avoir une connaissance approfondie des configurations de RabbitMQ. Pour plus de détails, voir la documentation officielle de RabbitMQ.
Haute disponibilité dans les grappes RabbitMQ
Dans une grappe à trois nœuds, la perte d'un nœud, même si les deux autres nœuds fonctionnent, entraîne une dégradation des performances.
La configuration haute disponibilité de RabbitMQ utilise l'algorithme Raft Consensus qui implique que plusieurs serveurs se mettent d'accord sur des valeurs.
(N/2)+1
, où N
est le nombre de nœuds.
Nombre de nœuds dans la grappe | Nombre de nœuds devant être disponibles | Nombre de défaillances de nœuds prises en charge |
---|---|---|
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 importante, plus elle a d'impact sur les performances. Lorsque les nœuds tombent en panne et que la grappe fonctionne dans un état dégradé, les performances sont fortement réduites.
Pour configurer la haute disponibilité pour RabbitMQ, voir Configuration de la haute disponibilité pour RabbitMQ.
Avantages : grappes autonomes RabbitMQ
- Haute disponibilité
- L'interruption des opérations est minimale, même si un nœud est en panne.
- Les ressources RabbitMQ ne sont pas partagées
- Les autres services n'utilisent pas les mêmes ressources et n'ont donc pas d'impact sur les performances ou la disponibilité de RabbitMQ.
- Pas de temps d'arrêt pour les mises à jour en continu
- Vous pouvez mettre à jour la configuration de RabbitMQ un nœud à la fois sans affecter la disponibilité du service.
Inconvénients : grappes autonomes RabbitMQ
- Déploiement très complexe
- RabbitMQ doit être déployé sur au moins trois nœuds. Le processus de déploiement est long et complexe.
- Maintenance élevée
- Dans le cas rare où une grappe entière se déconnecte en raison de partitions réseau multiples, vous devez résoudre manuellement le problème. Il est recommandé d'avoir une bonne connaissance des configurations et des diagnostics de RabbitMQ.
Pour plus de détails, voir la documentation officielle de RabbitMQ.
Qualité du service
L'utilisation de cette architecture de déploiement implique que la qualité du service repose davantage sur l'infrastructure de votre système. La qualité du service dépend directement de la qualité et de la fiabilité de vos infrastructures de réseau.