Je ne suis pas trop familier avec CARP mais je peux essayer d'aider les deux autres options:
Round-Robin DNS vous donne l'équilibrage de charge, mais si un serveur échoue, il sera toujours recevoir des demandes (qui échouera aussi)
ie: le DNS www.example.com indique à la fois xxx1 et xxx2
si xxx2 meurt, le DNS sera toujours résolu en xxx2 et les clients essaieront toujours de le demander, ce qui amène votre taux d'échec à la moitié de vos demandes pendant le temps d'arrêt (pas bon)
Même si vous changez le DNS pour pointer vers xxx1 seulement pendant le temps d'arrêt; La propagation de DNS prendra longtemps et vous perdrez toujours des demandes.
À mon avis honnête placer un équilibreur de charge (serveur proxy) devant votre pile est la seule façon d'aller
Je suis vraiment aime HAProxy mais son nullement la seule solution (trouver ce qui fonctionne pour vous)
serveurs proxy vous donne beaucoup plus de contrôle sur votre pile d'applications sous forme de haute disponibilité (HA)
vous pouvez équilibrer la charge entre 2 à N serveurs back-end et perdre un certain nombre d'entre eux et être encore fonctionnement.
Vous pouvez planifier des temps d'arrêt à tout moment de la journée pour effectuer des opérations de maintenance ou des déploiements et ne pas influencer vos clients.
Les contrôles d'intégrité intégrés interrogent les serveurs principaux et les retirent de la charge si nécessaire, puis les replacent lorsqu'ils sont restaurés.
La contre-charge de l'équilibrage de charge HA est généralement le nombre de règles à configurer pour que les sessions restent correctes ou routées dans des cas particuliers. oui ça peut devenir complexe mais il y a un LOT de soutien dans la communauté et c'est facile à apprendre. Une autre alternative à l'équilibrage de charge HA est que le serveur proxy lui-même devient un point de défaillance unique, mais cela peut être facilement surmonté avec heartbeatd et un second serveur proxy.
Espérons que cela répond à certaines de vos questions
Merci beaucoup pour cette réponse détaillée! J'ai deux autres questions, si cela ne vous dérange pas :) Par «deuxième serveur proxy», voulez-vous dire deuxième serveur physique, ou simplement un logiciel au sein d'un seul serveur. S'il y a un serveur physique, en cas d'échec, il faut changer DNS jusqu'à ce que le problème soit résolu, n'est-ce pas? Et une autre question concerne vos propres préférences: exécutez-vous HAProxy en mode 'http' ou' tcp'? – Curious
Être vraiment disponible Vous devez limiter les risques, donc oui un autre serveur physique ou une machine virtuelle (de préférence) au cas où votre serveur proxy principal échouerait. HAProxy est généralement juste un seul fichier de configuration que vous pouvez rsync dans le script de redémarrage afin que vous sachiez que le serveur secondaire a la dernière config. Comme pour la commutation DNS; il n'est pas nécessaire dans un empilage HA vos points DNS à une adresse IP partagée entre les 2 serveurs (voir https://www.howtoforge.com/setting-up-a-high-availability-load-balancer-with-haproxy-heartbeat -on-debian-lenny) –
Je lance HAProxy en mode http pour les applications web et en mode tcp pour mes mails sortants du serveur mail (SMTP) (j'envoie environ 2 millions de mails par jour pour les campagnes) tcp a du sens pour tout trafic non http, donc il revient à utiliser cas. C'est à propos d'utiliser le bon outil pour le travail et la construction d'une pile qui fonctionne pour vous. donc si vous voulez simplement charger les requêtes http, alors oui le mode http est le chemin à parcourir. –