1 votes

HAProxy peut-il envoyer certaines requêtes à tous les serveurs définis pour un backend ?

J'utilise HAProxy 1.8 pour acheminer les requêtes vers mon API HTTP et je veux maintenant équilibrer la charge entre plusieurs serveurs, ce qui donne quelque chose comme ceci :

backend http-in-backend
    balance roundrobin
    server api-server1 10.1.1.1:1234
    server api-server1 10.1.1.2:1234

Cependant, certaines demandes doivent être envoyées à tous les serveurs. Dans ce cas, il est possible de renvoyer la réponse de n'importe lequel d'entre eux au client, car la réponse doit être la même. Existe-t-il un moyen de faire cela ? Je peux conditionnellement envoyer ces demandes à un backend séparé, bien sûr. Le problème est donc le suivant : comment puis-je envoyer une demande à plusieurs serveurs et renvoyer la réponse de n'importe lequel d'entre eux ?

1voto

Vadim Points 426

1voto

Robie Points 100

Comme les réponses sont dépassées, j'aimerais poster une réponse plus récente.

Ceci est possible avec le moteur SPOE "mirror" et est appelé "traffic mirroring".

https://www.haproxy.com/de/blog/haproxy-traffic-mirroring-for-real-world-testing/

J'en ai également besoin actuellement et je prévois de le mettre en œuvre dans les prochaines semaines pour la première fois. Si j'ai une expérience utile, je reviendrai ici et l'ajouterai.

0 votes

Merci de votre attention ! N'hésitez pas à nous faire part de votre expérience.

0voto

Ray Shah Points 1

Cela ressemble plus à la tâche d'une file de messages qu'à celle d'un proxy inverse. Examinez RabbitMQ ou un système similaire pour voir comment une telle solution pourrait être architecturée. Une solution probable serait de demander à "n'importe quel" serveur de recevoir la requête et de transmettre le contenu pertinent à une file d'attente à laquelle "tous" les serveurs sont abonnés.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X