wake-up-neo.com

Apache Kamel gegen Apache Kafka

Soweit ich weiß, ist Apache Kafka eine asynchrone Messaging-Plattform, während Apache Camel eine Plattform ist, die die Integrationsmuster des Unternehmens implementiert.

Was sind also die praktischen Unterschiede zwischen Apache Camel und Apache Kafka? Wir hatten vor, das System mit Apache Camel zu implementieren, was relativ einfach ist, aber unser Kunde wollte den Apache Kafka stattdessen ohne Rationalität.

Welche Vorteile hätte die Wahl von Apache Kafka für die Implementierung einer Nachrichtenwarteschlangenfunktion, die auch mit Apache Camel implementiert werden könnte? Ich bin besorgt, dass Kafka nur unnötigen Overhead für das Projekt einführen würde. Vergleichen wir Äpfel und Orangen?

Was wir brauchen, ist eine unkomplizierte API zum Einrichten und Verwenden von geclusterten Nachrichtenwarteschlangen. Unser ursprünglicher Plan bestand darin, Camel zu verwenden, um in JMS- oder ActiveMQ-Warteschlangen in Clustern zu konsumieren/zu produzieren. Wie würde Kafka diese Aufgabe erleichtern? Die Anwendung selbst würde in beiden Fällen auf dem WebLogic-Server ausgeführt.

Das Messaging wäre ein Punkt-zu-Punkt-Typ, bei dem mehrere Instanzen desselben Diensts ausgeführt werden, aber nur eine Instanz sollte die Nachricht verarbeiten und das Ergebnis gemäß der Lastausgleichsrichtlinie ausgeben. Nachrichtenwarteschlangen werden auch in Clustern zusammengefasst, sodass weder der Ausfall der Dienstinstanz noch der Warteschlangeninstanz SPOF ist.

7
Tuomas Toivonen

Kamel und Kafka sind völlig verschiedene Dinge. In vielen Anwendungsfällen wird Kamel nur als Kunde von kafka/activemq/... verwendet.

Kafka und activemq sind sich ähnlich, aber auch verschiedene Dinge, siehe Was ist der Unterschied zwischen Apache kafka und ActiveMQ . Kafka hat einen höheren Durchsatz und Daten immer auf der Festplatte, also etwas zuverlässiger als activemq.

Kafka wird normalerweise als Echtzeit-Daten-Streaming verwendet, und Activemq wird im Allgemeinen hauptsächlich für die Integration zwischen Anwendungen verwendet, so das Buch. In den meisten Fällen können sich kafka und activemq leicht ersetzen.

4
Solo

Es ist sehr schwer, diese beiden zu vergleichen. Sie decken nicht die gleichen Arbeitsbereiche ab, aber es gibt einige Systeme, in denen Sie eines durch das andere ersetzen können.

Also ganz kurz.

Kafka ist eine Messaging-Plattform mit Streaming-Fähigkeit, Nachrichten Apache Kafka zu verarbeiten.

Camel ist ein ETL-Framework, das Meldungen/Ereignisse/Daten von einem beliebigen Eingabepunkt "any" (siehe Endpunktliste nach Camel) umwandeln und an "any" -Ausgabe Apache Camel - Enterprise Integration Patterns senden kann.

Sie können Kamel überhaupt ohne Kafka verwenden und umgekehrt. Es gibt natürlich Möglichkeiten, beides zusammen erfolgreich zu nutzen.

  • Fall 1. Sie verarbeiten Post und speichern in PostgreSQL DB. Kafka ist nutzlos. 
  • Fall 2. Sie bearbeiten Nachrichten aus ActiveMQ und senden sie an Kafka. Sie können beide verwenden.