RabbitMQ client équilibrage de la charge
Je suis pilotage rabbit mq et le trouve assez bon. La recherche à l'ap page, je trouve que l'échange/de la file d'attente de réplication fonctionne bien.
Je suis troublé par le fait que je dois utiliser un réseau TCP Loadbalancer afin d'équilibrer la charge entre les nœuds. Est-ce correct?
Je voudrais avoir 2 nœuds dans un cluster avec un "copier" de la politique.
Je voudrais et l'éditeur ou le consommateur à être en mesure de se connecter à tous les nœuds dans un round-robin comme comportement. Malheureusement, l'API client seulement permet la mise en place d'un hôte par connexion.
Est-il (3e partie peut-être?) connexion-bassin comme une solution pour qu'un éditeur publie et un consommateur consomme à partir de tous les nœuds?
OriginalL'auteur YaOg | 2013-05-30
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas vu tous les clients qui ne le regroupement de connexion pour AMQP/RabbitMQ. AMQP gère plusieurs éditeurs et les consommateurs dans un seul et même processus avec les chaînes et certains clients font que facile à utiliser, mais ne semble pas gérer automatisé de basculement de nœuds à l'aide d'un pool de connexions.
Dans un cluster, il n'est pas nécessaire de se connecter à tous les nœuds du cluster, de consommer et de publier des opérations sera correctement acheminé à l'intérieur du cluster. Pour la consommation d'essayer de gérer d'un seul ou de plusieurs processus avec plusieurs abonnements (au moins on consomme pour chaque connexion) n'a jamais été la priorité la plus élevée pour moi. Avec plusieurs processus de consommer, de chacun au hasard de la connexion à RabbitMQ, vous serez en mesure de maintenir la disponibilité d'une de ces RabbitMQ les nœuds de l'échec.
Éditeurs de longue durée de vie des connexions sont facilement en mesure de se reconnecter si une défaillance est détectée causant moins d'une seconde de la perturbation, assez petit dans ce que j'ai travaillé sur de ne pas être un problème.
De quelques années d'utilisation, je dirais que la reconnexion à un nouvel hôte est le plus simple problème lors d'un basculement, avec le difficile problème de la gestion de l'état au sein de votre application en ce qui concerne l'existant AMQP connexions. Dans la pratique, j'ai juste gardé une liste des hôtes disponibles et choisissez la suivante pour chaque nouvelle connexion. Tout moment de la fermeture de la connexion, il suffit de choisir un nouvel hôte et essayez de nouveau. Cela signifie un court laps de temps où vous ne pouvez pas publier et peut-être plus difficile si vous devez constamment faire de nouvelles connexions en PHP.
En raison de contrôle de flux TCP équilibreurs de charge peut être plus de mal alors qu'ils valent. Le TCP pression de retour ne peut pas le faire à travers la LB causant des éditeurs de publier plus rapidement que RabbitMQ peut gérer. En scientifique, tests, j'ai eu plus de problèmes avec RabbitMQ stabilité lorsqu'il était derrière un répartiteur de charge, puis quand les clients connectés directement.
OriginalL'auteur Philip Cristiano
Vous n'avez pas mentionné ce genre de clients que vous utilisez, mais pour Python il y a l'excellente Kombu bibliothèque. Le Kombu prend en charge les deux connexion et producteur de piscines.
Vous pouvez également spécifier plusieurs AMQP serveurs avec un rond-robbin, shuffle, ou de la coutume stratégie de basculement lorsque settting d'une connexion.
OriginalL'auteur hexedpackets
Pour python nameko manière suggérée pour la réalisation HA(Rabbitmq) est mentionné ici. Nameko parvient à réaliser ce que la sauvegarde de
bibliothèque(kombu) prend en charge round-robin de basculement
OriginalL'auteur Abhijeet