web-dev-qa-db-fra.com

Java Messaging: différence entre ActiveMQ, Mule, ServiceMix et Camel

Je suis nouveau dans la messagerie et je veux connaître la différence entre ActiveMQ, Mule, ServiceMix et Camel

Quelqu'un sait comment chacun de ces produits est différent?

Merci d'avance !

EDIT: J'aimerais également connaître tout bon endroit/ressource pour apprendre ces choses.

57
peakit

ActiveMQ est un courtier de messages qui implémente l'API JMS et prend en charge un nombre de clients multilingues et de protocoles résea . Il vous permet d'implémenter des files d'attente ou des rubriques et d'écrire des écouteurs ou des abonnés pour répondre aux événements de file d'attente.

Mule et ServiceMix sont des ESB open source (bus de services d'entreprise). Un ESB a des capacités au-delà de JMS: la mise en file d'attente est la clé, tout comme la transformation, le routage, la journalisation, la sécurité, etc.

Apache Camel est une implémentation des modèles dans Enterprise Integration Patterns . Il peut utiliser JMS et d'autres composants pour mettre en place les idées de ce livre.

JMS est fondamental pour les autres technologies, comme JDBC est le fondement d'Hibernate, iBatis, etc.

JMS est une API Java et une spécification et TCK (partie de Java EE). ActiveMQ en est une implémentation particulière).

Camel peut utiliser ActiveMQ (et Camel est intégré dans le courtier ActiveMQ afin que vous puissiez facilement router vers et depuis JMS vers les autres composants pris en charge par Camel).

Camel n'utilise pas directement Mule ou ServiceMix; bien que ServiceMix utilise Camel comme moteur de routage et mise en œuvre EIP préférés. Camel a un tonne de composants différents bien que utilisant différentes technologies différentes.

76
duffymo

Définissons d'abord

JMS est un J ava M essaging S spécification du protocole de service.
ESB est E nterprise S ervice B us.
JBI est J ava B usiness I ntegration.

Maintenant, nous pouvons répondre en détail:

Apache ActiveMQ est une implémentation de ce qui précède JMS ( J ava M essaging S ervice).

Apache Camel est un moteur de routage de messages implémentant des modèles d'intégration d'entreprise.
Il fournit de nombreux composants prédéfinis.
L'un de ses composants clés prend en charge JMS ( J ava - M essaging S ervice).

Apache ServiceMix est une implémentation de ce qui précède ESB ( E nterprise S ervice B us)
compatible avec le JBI ( J ava B usiness I ntegration) spécification.
Il fournit également de nombreuses fonctionnalités d'infrastructure non disponibles dans Camel (comme la prise en charge des services OSGI bundle).
SM utilise beaucoup le chameau.

Mule est une autre implémentation de ESB ( E nterprise S ervice B us), mais sans lien avec la famille Camel/ServiceMix.

54
Henryk Konsek

Mule est un bus de services d'entreprise offrant une solution d'intégration de bout en bout.

ActiveMQ est un courtier de messages pour la mise en file d'attente des messages entre l'abonné et le récepteur.

ServiceMix est également un ESB, c'est-à-dire Enterprise Service Bus

1
Rajkumar Epari

Camel vous permet de définir des règles de routage et de médiation dans une variété de langues spécifiques au domaine. Mule and SeriviceMix est ESB. ActiveMQ est un service de messagerie.

1
Aakash Kedia

Apache Service Mix :: C'est un ESB (Enterprise Service Bus), un conteneur JBI et une plateforme d'intégration.

Apache Camel: moteur intelligent de routage et de médiation qui implémente EIP (Enterprise Integration Patterns).

Apache ActiveMQ: C'est un courtier de messages qui implémente JMS.

1
Srini

Apache Camel est l'implémentation d'EIP (Enterprise Integration Patterns)

ServiceMix est le produit conforme aux principes de l'ESB dans un environnement SOA.

Active MQ est aussi bon que toute autre implémentation de l'API JMS

Mule est aussi un ESB