Apache Ignite と Apache Storm は、多くの点でかなり異なる 2 つのテクノロジです。特に、Storm には非常に特殊なユース ケースが 1 つありますが、Ignite には 1 つの屋根の下に非常に多くのツール セットがあります。私が理解しているように、Ignite のコアはインメモリ ストレージです。その上に構築されているのは、データの局所性に敏感な計算です。その上に、あらゆる種類のクールな「おもちゃ」が組み込まれています。私が興味を持っているのはストリーミング機能です。これは基本的に、変化するインメモリ キャッシュに対するクエリ リスナーです。
スライディング ウィンドウを 1 タプルに設定すると、Ignite は、Storm のように、一度に 1 タプルの機能を提供します。データは Ignite によってメモリに保存されます。Storm はインメモリの意味でデータを「保存」しませんが、もちろんタプルもメモリに保存されます。どちらの場合も、ストリーミングがあり、メモリにデータがあり、計算を分散できます。
どちらのテクノロジも抽象化されているため、データ変換の多くの手順を実行するプログラムを作成する場合は、Storm で作成する方が簡単かもしれないと感じています。それについて何を言うべきですか?
2 番目の質問: パフォーマンスはどうですか? Ignite のデータの局所性が有利になるのではないかと思います。一方、Ignite プログラムはそれほど簡単に分割できない可能性がありますが、Storm では複数のステップを分散する方がよいと思います (すべての種類のマシンで異なるボルト)。
それでもストリームを配布したい場合 (データごとだけでなく、異なるマシン上のステップも)。キャッシュを介して通信する複数の Ignite ストリーマーを作成する必要があると思いますよね? これは、Storm よりも書くのが難しいように思えます (最初の質問に戻ります)。