ActiveMQ ou RabbitMQ ou ZeroMQ ou
Nous serions intéressés de connaître des expériences avec les avantages et les inconvénients de ActiveMQ vs RabbitMQ vs ZeroMQ. Les renseignements sur toute autre intéressant files d'attente de messages est également la bienvenue.
- Je suis nouveau à la file d'attente de messages et a été la lecture de véritables cas d'utilisation de l'informatique à stackoverflow.com/q/1035949/181870. Plus tard, alors qu'à googler pour les sujets/articles liés à la file d'attente de messages JMS (en particulier), je suis tombé sur OpenJMS - une implémentation open source de Sun Microsystems Java Message Service API 1.1. Ce que je suis surpris, c'est qu'il n'est pas couvert/discuté ici? Je voulais juste vérifier avec la communauté si OpenJMS est liée à ce sujet, la discussion et le cas échéant, conformément à l'OP, des expériences avec des avantages et des inconvénients de la même aide.
- 3 ans plus tard, une note pour les gens de navigation par ici ... pensez à POURQUOI vous voulez utiliser message queueing middleware. Si la raison est de répartir les tâches au sein d'un cluster, regardez le Céleri. Il fonctionne à un niveau d'abstraction plus élevé que le MQ-solutions style, utilise RabbitMQ pour déplacer des messages, mais a soutien exceptionnel pour une tâche spécifique de la sémantique.
InformationsquelleAutor Abie | 2009-04-08
Vous devez vous connecter pour publier un commentaire.
Edit: Ma première réponse avait un fort accent sur AMQP. J'ai décidé de le réécrire pour offrir une vue plus large sur le sujet.
Ces 3 technologies de messagerie ont des approches différentes de la construction de systèmes répartis :
RabbitMQ est l'un des leaders de la mise en œuvre du protocole AMQP (avec Apache Qpid). Par conséquent, il met en œuvre un broker architecture, ce qui signifie que les messages en file d'attente sur un nœud central avant d'être envoyé aux clients. Cette approche permet de RabbitMQ très facile à utiliser et à déployer, car les scénarios avancés comme le routage, l'équilibrage de la charge ou persistants message queuing sont pris en charge en seulement quelques lignes de code. Cependant, il rend également moins évolutif et “plus lent”, car le nœud central ajoute de la latence et le message enveloppes sont assez grandes.
ZeroMq est d'un très léger système de messagerie spécialement conçu pour le haut débit et faible latence des scénarios comme celui que vous pouvez trouver dans le monde financier. Zmq prend en charge de nombreuses avancées de la messagerie de scénarios, mais contrairement à RabbitMQ, vous aurez à mettre en œuvre la plupart d'entre eux vous-même en combinant les différents éléments de l'infrastructure (e.g : prises et appareils). Zmq est très flexible, mais vous aurez à étudier la 80 pages du guide (dont je recommande la lecture pour tout le monde écrit distribué système, même si vous n'utilisez pas Zmq) avant de pouvoir faire quelque chose de plus compliqué que d'envoyer des messages entre les 2 pairs.
ActiveMQ est dans la moyenne. Comme Zmq, il peut être déployé avec les deux courtier et P2P topologies. Comme RabbitMQ, il est plus facile de mettre en œuvre les scénarios avancés mais généralement au détriment de la performance brute. C'est le couteau Suisse de la messagerie :-).
Enfin, tous les 3 produits:
Pourquoi avez-vous manqué Moineau, Starling, Kestrel, Amazon SQS, Beanstalkd, Kafka, IronMQ ?
Message De La File D'Attente Des Serveurs
Message de la file d'attente des serveurs sont disponibles en plusieurs langues, Erlang (RabbitMQ), C (beanstalkd), Ruby (l'Étourneau ou Moineau), Scala (faucon Crécerelle, Kafka) ou Java (ActiveMQ). Un bref aperçu peut être trouvée ici
Moineau
Starling
Kestrel
RabbitMQ
Apache ActiveMQ
Beanstalkd
Amazon SQS
Kafka
ZMQ
EagleMQ
IronMQ
J'espère que ce sera utile pour nous.
source
Plus d'informations que vous voulez savoir:
http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes
Mise à JOUR
Juste à l'élaboration de ce que Paul a ajouté en commentaire. Le la page mentionnée ci-dessus est mort après 2010, afin de lire avec une pincée de sel. Beaucoup de choses ont été changé en 3 ans.
Cela dépend vraiment de votre cas d'utilisation.
Comparant 0MQ avec ActiveMQ ou RabbitMQ est pas juste.
ActiveMQ et RabbitMQ sont les Systèmes de Messagerie qui nécessitent l'installation et de l'administration.
Ils offrent featurewise beaucoup plus de ZeroMQ. Ils ont de vrais persistante des Files d'attente, le Soutien pour les transactions etc.
ZeroMQ est un léger message orienté socket mise en œuvre. Il est également adapté pour le processus de programmation asynchrone. Il est possible d'exécuter un "Système de Messagerie d'Entreprise" plus de ZeroMQ, mais vous aurez à mettre en œuvre beaucoup de choses sur votre propre.
Donc:
ActiveMQ, RabbitMQ, Websphere MQ & MSMQ sont "Entreprise Files d'attente de Messages"
ZeroMQ est un message orienté CIB Bibliothèque.
Il y a une comparaison entre RabbitMQ et ActiveMQ ici. Hors de la boîte, ActiveMQ est configuré de manière à garantir la livraison d'un message - ce qui peut donner l'impression de sa lente par rapport à la moins fiable des systèmes de messagerie. Vous pouvez toujours changer la configuration de la performance, si vous le souhaitez et obtenir au moins aussi bonnes performances que tout autre système de messagerie. Au moins, vous avez la possibilité de. Il y a beaucoup d'informations sur les forums et les ActiveMQ FAQ pour la configuration de mise à l'échelle, de la performance et de haute disponibilité. Aussi, ActiveMQ soutiendra AMQP 1.0 lors de la spécification est finalisé, conjointement avec les autres fil formats, comme des PÉDALES d'effets.
Un autre plus pour ActiveMQ est un projet Apache, donc il y a de la diversité dans la communauté des développeurs - et ce n'est pas lié à une seule entreprise.
Je n'ai pas utilisé ActiveMQ ou RabbitMQ, mais ont utilisé ZeroMQ. La grosse différence que je vois entre ZeroMQ et ActiveMQ, etc. c'est que 0MQ est brokerless et n'a pas intégré dans la fiabilité de la livraison du message. Si vous êtes à la recherche pour un facile pour utiliser l'API de messagerie de soutenir de nombreux modèles de messagerie,des transports, des plateformes et des liaisons de langage alors 0MQ est certainement en valeur un regard. Si vous êtes à la recherche pour une véritable plate-forme de messagerie puis 0MQ ne peut pas adapter le projet de loi.
Voir http://www.zeromq.org/docs:cookbook de nombreux exemples de la façon dont 0MQ peut être utilisé.
Je un avec succès à l'aide de 0MQ pour la transmission de message à l'utilisation d'électricité, la surveillance de l'application (voir http://rwscott.co.uk/2010/06/14/currentcost-envi-cc128-part-1/)
Je suis l'aide de zeroMQ. Je voulais un simple passage de messages système et je n'ai pas besoin de la complication d'un courtier. Aussi, je ne veux pas d'une énorme Java orienté système d'entreprise.
Si vous voulez une solution rapide, simple système et vous avez besoin de prendre en charge plusieurs langues (j'utilise C et .net) alors je vous recommande de regarder 0MQ.
Je peux seulement ajouter mes 2 cents sur ActiveMQ, mais puisque c'est l'un des plus populaires:
La langue que vous souhaitez écrire pourrait être important. Bien que ActiveMQ a un client pour la plupart, de leur C# de la mise en œuvre est loin d'être complète par rapport à la Bibliothèque Java.
Cela signifie que certaines fonctionnalités de base est feuilletée (fail-over protocole que ... eh bien ... échoue dans certains cas, aucune nouvelle livraison de soutien) et d'autres n'est tout simplement pas là. Depuis .NET ne semble pas du tout être important pour le projet, le développement est plutôt slowish et il ne semble pas y avoir de plan de libération. Le tronc est souvent cassées, donc si vous ne considérez ceci, vous pourriez envisager de contribuer au projet si vous voulez que les choses aillent de l'avant.
Puis il y a ActiveMQ lui-même, qui a beaucoup de fonctionnalités intéressantes, mais très étranges questions aswell. Nous utilisons le Fusible (Cours) version de activemq pour des raisons de stabilité, mais même alors, il ya un couple de bizarre "bugs" que vous voulez garder à l'esprit:
À toutes et à tous, c'est un très bon produit SI vous pouvez vivre avec ses problèmes:
A) ne sont pas peur de s'engager activement lors de l'utilisation .NET
B) développer en java 😉
ZeroMQ est vraiment à zéro les files d'attente! C'est vraiment une erreur! Il n'a pas le vha files d'attente, de thèmes, de la persistance, de la rien de! C'est seulement un middleware pour les sockets API. Si c'est ce que vous êtes à la recherche cool! sinon, oubliez ça! ce n'est pas comme activeMQ ou rabbitmq.
Il y a une comparaison des fonctions et des performances de RabbitMQ ActiveMQ et QPID donné à
http://bhavin.directi.com/rabbitmq-vs-apache-activemq-vs-apache-qpid/
Personnellement, j'ai essayé tous les trois ci-dessus. RabbitMQ est la meilleure performance sage selon moi, mais il n'a pas de basculement et les options de récupération. ActiveMQ a le plus de fonctionnalités, mais est plus lent.
Mise à jour :
HornetQ est également une option que vous pouvez regarder dans, il est JMS Plainte, une meilleure option que ActiveMQ si vous êtes à la recherche pour un de JMS base de solution.
J'ai écrit au sujet de ma première expérience en ce qui concerne AMQP, Qpid et ZeroMQ ici: http://ron.shoutboot.com/2010/09/25/is-ampq-for-you/
Mon opinion subjective, c'est que AMQP est très bien si vous avez vraiment besoin de la persistance des équipements de transmission de messages et n'est pas trop préoccupé de ce que le courtier peut être un goulot d'étranglement. Aussi, C++ client est actuellement absent pour AMQP (Qpid n'ai pas gagné mon soutien; pas sûr au sujet de la ActiveMQ client cependant), mais peut-être que les travaux en cours. ZeroMQ peut-être la voie contraire.
J'ai utilisé ActiveMQ dans un environnement de production pour environ 3 ans maintenant. Alors qu'il fait le travail sur la doublure, les versions des bibliothèques de client qui fonctionnent correctement et sont sans bug peut être un problème. Actuellement à la recherche d'une transition à RabbitMQ.
Il y a une discussion dans les commentaires de ce blog, sur Twitter de la rédaction de leur propre file d'attente de messages, ce qui peut être intéressant.
Vous n'aurez probablement pas un Twitter-like charge initialement cependant 🙂
Peu de demandes ont autant de paramétrage des configurations ActiveMQ. Quelques caractéristiques qui font de ActiveMQ ressortent sont:
Configurable taille de Prélecture.
Configurable threading.
Configurable de basculement.
Configurable notification administrative pour les producteurs.
...
pour plus de précisions:
http://activemq.net/blog
http://activemq.apache.org
Abie, il s'agit de votre cas d'utilisation. Plutôt que de compter sur quelqu'un d'autre compte de leurs cas d'utilisation, n'hésitez pas à poster votre cas d'utilisation de la rabbitmq-la liste de discussion. Demandant sur twitter, vous obtiendrez quelques réponses trop. Meilleurs voeux, alexis
Sur ZeroMQ aka 0MQ, comme vous le savez peut être déjà, c'est celui qui vous permettra d'obtenir plus de messages par secondes (ils étaient près de 4 millions de fois par seconde sur leurs réf serveur dernière fois que j'ai vérifié), mais comme vous pouvez également le savez déjà, la documentation est inexistante. Vous aurez un moment difficile de trouver comment démarrer le serveur(s), sans parler de la façon de les utiliser. Je suppose que c'est en partie pourquoi n'a contribué à propos de 0MQ encore.
Amusez-vous!
Si vous êtes également intéressé par implémentations commerciales, vous devriez jeter un oeil à Nirvana de mon-canaux.
Nirvana est largement utilisé dans l'industrie des Services Financiers de grande échelle et à faible latence pour la négociation de prix et de plates-formes de distribution.
Il ya un soutien pour un large éventail de langages de programmation à travers l'entreprise, le web et le mobile domaines.
Le regroupement des capacités sont extrêmement avancées et vaut le détour si transparent HA ou l'équilibrage de charge est important pour vous.
Nirvana est en libre téléchargement à des fins de développement.