Lors de l'utilisation de RabbitMQ pelles et quand Fédération plugin?
Pour la société où je travaille, nous aimerions utiliser RabbitMQ que notre message principal de bus. L'idée que nous avons est que chaque application utilise son propre serveur virtuel pour la communication interne, à l'aide de la pelle ou de la fédération plugin nous, il serait possible de partager un certain type d'événements à travers de multiples serveurs virtuels (peut-être même plusieurs machines (non-cluster)).
Nous avons choisi pour l'application par vhost pour séparer la communication interne à partir d'événements publics et d'assurer la sécurité réglable par l'application.
Sur la base des informations publiées sur le RabbitMQ site, je ne comprends pas quand je dois choisir pour pelles ou quand je dois choisir pour la fédération plugin.
RabbitMQ est la suivante explication quand utiliser quoi:
En règle générale, vous utilisez la pelle pour relier les courtiers sur internet lorsque vous avez besoin de plus de contrôle que la fédération fournit.
Ce qui est de la fine grain de contrôle dans les pelles qui me manque lorsque je choisis pour la fédération?
En ce moment, je pense que je préférerais la fédération plugin car j'ai pu automatiser l'inter-vhost-communication via l'API REST fourni par la fédération plugin.
En cas de pelles j'aurais besoin de changer la pelle configuration et redémarrez le RabbitMQ exemple à chaque fois que nous aimerions partager avec vous un événement entre les vhosts. Sont mes pensées correctes à ce sujet?
Nous sommes actuellement en cours d'exécution MRQ sur Windows avec les clients qui se connectent à partir de .NET. Dans un avenir proche Java/Perl/PHP clients rejoindront.
Pour résumer mes questions:
- Ce qui est de la fine grain de contrôle dans les pelles qui me manque quand je
choisissez pour la fédération? - Est-il exact que la seule façon de changer la
inter-vhost-communication lorsque j'utilise des pelles est de changer theconfig fichier et le redémarrage de l'instance? - Le programme d'installation (vhost par application), un sens ou je suis pas complètement?
Vous devez vous connecter pour publier un commentaire.
De pelles et de file d'attente fournir différents moyens à transférer des messages de l'un RabbitMQ nœud à un autre.
Fédérés De Change
Avec un fédéré de change, les files d'attente peuvent être connectés à la file d'attente sur l'amont(source) nœud. En outre, un échange sur l'aval(destination) nœud de recevoir une copie des messages qui sont publiés à l'amont du nœud.
Fédéré les échanges sont un analogue de l'échange-à-échange des liaisons, en cela, il peut (éventuellement) s'abonner à un ensemble limité de messages à partir d'un en amont de l'échange.
Fédéré File D'Attente
(NOTE: ce sont de nouveaux en RabbitMQ 3.2.x)
Avec un fédéré de la file d'attente, les consommateurs peuvent être connectés à la file d'attente sur l'amont(source) et en aval(destination) nœuds.
Dans l'essence de l'aval de la file d'attente est un consommateur sur l'amont de la file d'attente, avec l'espoir qu'il y aura être d'autres les consommateurs en aval de ce processus que les messages de la même manière en tant que consommateur attaché à l'amont de la file d'attente.
Tous les messages consommée par l'aval (fédérés) de la file d'attente ne sera pas disponible pour les consommateurs en amont de la file d'attente.
Cas D'Utilisation:
Si les consommateurs sont en cours de migration à partir d'un nœud à un autre, un fédéré file d'attente va permettre que cela arrive sans messages manqués, ou traité deux fois.
Cas D'Utilisation: à partir de la RabbitMQ docs
Pelle
Pelles d'autre part, fixer un "en amont" de la file d'attente pour un "en aval" de l'échange. (Je place les termes entre guillemets parce que la pelle de la documentation ne permet pas de décrire les nœuds avec la même sémantique que la fédération de la documentation.)
La pelle consomme les messages de la file d'attente et les envoie à l'échange sur le nœud de destination. (NOTE: bien que pas normalement examinées dans le cadre de ce le patron, il n'en est rien, l'arrêt d'une consommation à partir de la connexion à la file d'attente sur le nœud origine.)
Les réponses aux questions:
Une pelle n'a pas ont à résider sur une "en amont" ou "en aval" nœud. Il peut être configuré et fonctionnent à partir d'un noeud indépendant.
Une pelle pouvez créer tous les éléments de la liaison par lui-même: la source de la file d'attente, les liaisons de la file d'attente, et la destination de l'échange. Ainsi, il est non-invasive à la source ou la destination du nœud.
Cela a généralement été accepté à la baisse de la pelle.
Avec la commande suivante (attention: uniquement testé sur RabbitMQ 3.1.x, et avec une très spécifiques
rabbitmq.config
fichier qui contiennent uniquement ) vous pouvez recharger une pelle de configuration à partir du fichier spécifié. (dans ce cas/etc/rabbitmq/rabbitmq.config
).
Cette décision va dépendre de votre cas d'utilisation. vhosts principalement à fournir de logique (et de l'accès) la séparation entre les files d'attente/les échanges et les utilisateurs autorisés.
Pelle agit comme un bien conçu, intégré à la consommation. Il peut consommer des messages à partir d'une source de courtier et de file d'attente, et de les publier en une destination de courtier et d'échange. Vous pouvez écrire une application pour le faire, mais à la pelle déjà eu droit si vous avez besoin de déplacer les messages d'une file d'attente à un échange dans le même ou un autre courtier, la pelle peut le faire pour vous. Tout aussi bien se comporter d'application, il peut déclarer des échanges/files/liaisons, rebranchez-le, modifiez la clé de routage etc. Vous pouvez l'installer sur la source ou la destination de courtier, ou même utiliser un courtier. En gros, c'est un AMQP client.
Fédération, sur l'autre main est utilisée pour connecter votre courtier à un ou plusieurs courtiers en amont, ou vous pouvez même créer des chaînes de courtiers, la flexion de la topologie de la manière que vous voulez. Vous permet de fédérer les échanges ou les files d'attente, et l'exemple de distribuer des messages à plusieurs courtiers sans la nécessité de lier les listes d'attente pour un sujet d'échange ou à l'aide d'une sortance de change, et de curer les messages de chaque file d'attente à un courtier en aval.
Pour rappel, la fédération s'opère à un niveau plus élevé, tandis que la pelle est la plupart du temps "juste" un bien écrit du client.
Pour reconfigurer la pelle, vous devez redémarrer le courtier, malheureusement.
Je ne pense pas que vous avez vraiment besoin d'un par application serveur virtuel. Vous pouvez ajouter un par application de l'utilisateur pour le courtier sans séparer les vhosts. Pas sûr de ce que tu veux dire sur la "part d'un événement entre les vhosts", cependant.