Apache Kafka 0.9および0.10の新機能の調査中、KStreamsおよびKTablesを使用していました。Kafkaが内部でRocksDBを使用しているという興味深い事実があります。Introducing Kafka Streams:Stream Processing Made Simpleを参照してください。RocksDBはJVM互換言語で記述されていないため、追加の共有ライブラリ(OSに依存)が必要なため、デプロイメントを慎重に処理する必要があります。
そしてここに簡単な質問があります:
答えを検索しようとしましたが、RocksDBが毎秒約数百万回のオペレーションの範囲で非常に高速であるという暗黙の理由しかわかりません。
一方、JavaでコーディングされているDBがいくつかあり、エンドツーエンドで、JNIを介さずにそれを実行できる場合もあります。
RocksDBは、いくつかの(内部の)理由で使用されます(たとえば、既にそのパフォーマンスについて説明しました)。概念的には、Kafka StreamsはRocksDBを必要としません-これは内部キー値キャッシュとして使用され、同様の機能を提供する他のストアも機能します。
以下の@migunoからのコメント(言い換え):
純粋なインメモリキーバリューストアとは対照的に、RocksDBの重要な利点の1つは、ディスクに書き込むことができることです。したがって、Kafka Streamsは、使用可能なメインメモリよりも大きな状態をサポートできます。
上記の@migunoからのコメント:
参考:
"RocksDB is not written in JVN compatible language, so it needs careful handling of the deployment, as it needs extra shared library (OS dependent)."
Kafka Streamsのユーザーは何もインストールする必要はありません。
使用カフカストリームDSLを 0.10.2リリース(のように、KAFKA-3825)、それはカスタム状態店でプラグインすると、異なるキーと値のストアを使用することが可能です。
Kafka Streams Processor APIを使用StateStore
すると、インターフェースを介して独自のストアを実装し、トポロジ内のプロセッサノードに接続できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加