Apache Camel ist eine Bibliothek, die Enterprise Integration Patterns (EIP) implementiert. Obwohl Spring als IOC-Framework verwendet werden kann, ist es nicht einmal von Spring abhängig, sodass es vollständig plattformunabhängig ist. Es ist "nur" eine Bibliothek. Sie können es also in jeder JVM-Umgebung ausführen, z. B. einfaches JVM, Servlet, EJB, OSGI. Es bringt keinen der Vorteile (oder den Overhead) eines Containers wie Mule mit sich. Meiner Meinung nach hat dies eine sauberere Trennung der Bedenken in diesem Bereich zur Folge.
Mule kann auch in verschiedene Umgebungen eingebettet werden, aber ich denke, Mule hat sowohl die Vor- als auch die Nachteile, wenn die EIP-Bibliothek an den Container gekoppelt wird. Wenn Sie Mule in einer Servlet- oder EJB-Umgebung bereitstellen, möchten Sie wirklich das gesamte Gepäck des Mule-Containers tragen? Ich bin kein Mule-Experte, und ich denke, Sie können wahrscheinlich relativ wenig Aufwand betreiben und einige der redundanten Funktionen bereinigen. (Beachten Sie, dass dies nicht in allen Fällen eine schlechte Funktion ist. Es ist nur redundant, wenn Sie in einem anderen Container eingebettet ausführen.)
Apache ServiceMix ist ein OSGI-Container, der Camel verwendet, um EIP als Basis eines ESB zu implementieren. Obwohl ServiceMix in der Vergangenheit mit seinen Wurzeln in JBI begann, hat es sich von JBI entfernt und sich zu einer schönen Schichtarchitektur (IMO) entwickelt, die Apache CXF, Camel und ActiveMQ der Spitzenklasse in einem OSGI-Container kombiniert. Der wichtigste Wert ist hier nicht wirklich ServiceMix und seine JBI - Unterstützung, aber der zugrunde liegende OSGi - Container Standardgekoppelt mit bewährten Apache-Transporten wie CXF für Webdienste und ActiveMQ für JMS. OSGI ist ein ausgereifter Standard, der einen Container bietet, der die gleichen Arten von "DLL" -Hölle behandelt, die Microsoft vor dem Aufkommen von .NET geplagt haben. Während weder .NET noch OSGI die wesentliche Komplexität des zugrunde liegenden Problems lösen, bieten sie zumindest ein Mittel, um es anzugehen. OSGI hat auch andere Vorteile, aber aus Sicht der Produktauswahl ist der auf Standards basierende Container primär, und sein wesentliches Merkmal, das Mule (und Java im Allgemeinen) nicht ansprechen, ist das Abhängigkeitsmanagement.
Einige wichtige Dinge, die beim Vergleich von Mule mit Apache-Communities zu beachten sind. Mule ist wie Redhat in dem Sinne, dass es sich zwar um eine Open-Source-Lizenz handelt, aber meiner Meinung nach nicht wirklich eine offene Community ist. Jeder kann an Apache teilnehmen, während MuleSoft die Mule-Community und die endgültige Roadmap besitzt. Zweitens, obwohl die Mule-Community wohl ziemlich aktiv ist, denke ich, dass die Apache-Community viel größer ist (und natürlich, da es sich nicht um eine Gated-Community handelt). Beide Ansätze haben sowohl Vor- als auch Nachteile. Ein positiver Aspekt des Apache-Ansatzes ist, dass es mehrere Anbieter für ESBs gibt, die auf Camel, CXF, ActiveMQ und OSGI basieren. Zum Beispiel bietet Talend einen ESB für dieselben Kerntechnologien ohne die ServiceMix-JBI-Historie an. Dies hat sowohl Vorteile als auch Nachteile innerhalb der Apache-Community. Der eigentliche Punkt ist jedoch, den Unterschied zwischen Apache und Mule hervorzuheben. In der Mule-Community finden Sie keine zahlreichen Anbieter. IMO ist ein Apache ESB wie Talend oder ServiceMix eine breitere und umfassendere und letztendlich wettbewerbsfähigere Community als eine geschlossene Community wie Mule.
Ed Ost
Mein Blog-Beitrag beantwortet genau diese Frage: http://www.kai-waehner.de/blog/2011/06/02/when-to-use-apache-camel/ => Apache Camel ist ein leichtes Integrationsframework, ServiceMix und so weiter sind volle ESBs.
quelle
Camel ist eine Vermittlungsmaschine, während Mule eine leichte Integrationsplattform ist. Der Unterschied besteht darin, dass Mule alle Funktionen eines ESB bietet, einschließlich eines Containers zum Bereitstellen von Anwendungen, REST und Web Services. Mule kann auf die gleiche Weise wie Camel eingebettet werden, damit Anwendungsentwickler dort Anwendungscode mit ihrem Integrationscode einbetten können. Beide integrieren sich eng in Spring.
Mule verwendet JBI aus guten Gründen nicht. Nachdem die JBI-Spezifikation aufgelöst wurde (keine Arbeitsgruppe von Oracle, die die JBI-Spezifikation ursprünglich weitergegeben hat), gibt es keinen guten beruflichen oder technischen Grund für die Verwendung von JBI.
quelle
Es gibt einige FAQ-Einträge bei Apache Camel, die etwas Licht auf diese http://camel.apache.org/faq werfen
Und die Link-Sammlung bei Apache Camel http://camel.apache.org/articles.html
Haben Sie einige Links, über die Leute in der Community sprechen, und vergleichen Sie Camel mit anderen Projekten.
quelle
Claus, es gibt eine Reihe von Fehlern in den Kamel-FAQ, nicht überraschend, keiner von ihnen zu unseren Gunsten :)
quelle
Zunächst müssen Sie verstehen, dass Service Mix wie ein Container ist, in dem Apache Camel-Code ausgeführt werden kann, und dass Mule ESB ein eigenständiges Produkt ist
Es kann viele Unterschiede zwischen ESB-Produkten geben.
Sie sollten einige Dinge wissen, bevor Sie sich die Differenzierung ansehen. Sie sind
Die oben genannten Faktoren sind die besten Faktoren, die Sie berücksichtigen müssen, bevor Sie eine Auswahl treffen. Das Obige ist für den größten Teil der Produktauswahl allgemein und erfordert auch hier besondere Aufmerksamkeit.
Der sekundäre Produktunterschied ist spezifisch für die Tools und deren Domäne. Dies ist wahrscheinlich die Antwort, nach der Sie suchen. Suchen Sie die Liste, die Sie überprüfen müssen, bevor Sie eine Auswahl treffen.
Dies ist wahrscheinlich eine Recherche, die Sie selbst durchführen müssen, um den Unterschied auszuwählen. Es gibt viele Möglichkeiten, die das Produkt für Ihr Unternehmen geeignet machen, anstatt es als das Beste auf dem Markt zu bezeichnen.
Wenn es um Apache-Kamel oder andere ESB geht. Der Unterschied, der machen wird, sind
quelle