2017-08-24 3 views
4

両方ともイベントを一度に処理するストリーミングフレームワークなので、これら2つのテクノロジ/ストリーミングフレームワークのコアアーキテクチャの違いは何ですか?Apache ApexとApache Flink

さらに、あるものが他のものよりも適切な場合はいくつかありますか?

答えて

3

皆さんがお伝えしたように、両方ともリアルタイムで計算するストリーミングプラットフォームです。しかし、あなたがもっとよく見ていくと、いくつかのアーキテクチャ上の違いがあります。

  1. アペックスは、それが完全にスケジューリング、セキュリティFLINKは、糸と統合として&マルチテナント用の糸を使用し、糸ネイティブなアーキテクチャです。 Apexはオペレータ(コンテナ)レベルでの糸の割り当てが可能です。
  2. パーティショニング:Apexは、いくつかの洗練されたストリーム分割スキームをサポートし、オペレータのローカル性を制御することもできます。&ストリームローカリティFlinkは単純なハッシュパーティションとカスタムパーティションをサポートしています。
  3. Apexを使用すると、アプリケーションを停止することなくトポロジを動的に変更できます。 Apexを使用すると、アプリケーションを実行時に更新できるので、演算子の追加や削除、演算子のプロパティの更新、実行時のアプリケーションの自動縮尺が可能です。 Apache Flinkはこれらの機能をサポートしていません。
  4. バッファー・サーバー:オペレーター間にバッファー・サーバーと呼ばれるメッセージ・バスがあります。サブスクライバはバッファサーバに接続し、特定のオフセットからデータをフェッチできます。これはウィンドウを認識し、加入者が必要でない限りデータを保持します。
  5. フォールトトレランス:Apexにはインクリメンタルリカバリモデルがあり、失敗した場合はトポロジの一部のみを再起動して元に戻す必要はなく、元の状態に戻ります。
  6. Apexには高レベルのAPIと低レベルのAPIがあります。 Flinkは高いレベルのAPIしか持っていません。
  7. ApexにはApache Malharというライブラリがあります。Apache Malharには、よくテストされたコネクタと処理演算子があり、簡単に再利用できます。
  8. 最後に、Apexは大きなデータアプリケーションの製品化に重点を置いているため、アプリケーションの開発と保守を容易にする多くの機能を備えています。

注:私は、ApacheのApexにコミッターいますので、私はアペックスに偏って聞こえるかもしれません:)