web-dev-qa-db-ja.com

Apache Camel対Apache Kafka

私の知る限り、Apache Kafkaは非同期メッセージングプラットフォームであり、Apache Camelはエンタープライズ統合パターンを実装するプラットフォームです。

それでは、Apache CamelとApache Kafkaの実際の違いは何ですか?比較的簡単なApache Camelを使用してシステムを実装する予定でしたが、顧客は合理的ではなくApache Kafkaを望んでいました。

Apache Kafkaを選択してメッセージキュー機能を実装すると、Apache Camelでも実装できる利点は何ですか? Kafkaはプロジェクトに不必要なオーバーヘッドをもたらすだけだと心配しています。リンゴとオレンジを比較していますか?

必要なのは、クラスター化されたメッセージキューをセットアップして使用するための簡単なAPIです。最初の計画は、キャメルを使用して、クラスター化されたJMSまたはActiveMQキューで消費/生成することでした。 Kafkaはこのタスクをどのように簡単にしますか?どちらの場合でも、アプリケーション自体はWebLogicサーバーで実行されます。

メッセージングは​​ポイントツーポイントタイプで、同じサービスの複数のインスタンスが実行されますが、1つのインスタンスのみがメッセージを処理し、負荷分散ポリシーに従って結果を発行する必要があります。メッセージキューもクラスター化されるため、サービスインスタンスまたはキューインスタンスの障害はSPOFではありません。

10
Tuomas Toivonen

キャメルとKafkaはまったく別のものです。多くのユースケースでは、ラクダはkafka/activemq/...のクライアントとして使用されています。

Kafkaとactivemqは似ていますが、異なることも参照してください Apache kafka vs ActiveMQの違いは何ですか 。Kafkaスループット、データは常にディスク上にあるため、activemqよりも少し信頼性が高くなります。

Kafkaは通常、リアルタイムのデータストリーミングとして使用され、一般的にactivemqは主にアプリケーション間の統合に使用されます、と本は述べています。しかし、実際のほとんどの場合、kafkaとactivemqは互いに簡単に置き換えることができます。

7
Solo

これら2つを比較するのは非常に困難です。それらは同じ作業領域をカバーしていませんが、いくつかのシステムが存在し、一方を他方に置き換えることができます。

すぐに。

Kafkaは、メッセージを処理するストリーミング機能を備えたメッセージングプラットフォームです Apache Kafka

CamelはETLフレームワークであり、「any」(Camelによるエンドポイントリストを参照)入力ポイントからのメッセージ/イベント/データを変換し、「any」出力に送信できます Apache Camel-Enterprise Integration Patterns

キャメルはKafkaなしで使用できます。逆も同様です。

  • ケース1.メールを処理し、PostgreSQL DBに保存します。 Kafka=ここでは役に立ちません。
  • ケース2. ActiveMQからのメッセージを処理し、Kafkaに送信します。両方を使用できます。