問題タブ [stream-processing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
messaging - タイムスタンプでソートされたストリーム データの集約
クライアントからイベントを受信し、これらのイベントの一部が論理的に関連している (単一のセッションに属している) ユース ケースがあり、タイムスタンプに基づいてイベント間に明確な順序があります。
ここで、特定のグループの最後のイベントがタイムスタンプの昇順で受信されるまでイベントを集計し続けるソリューションを構築したいと考えています。そのため、順序どおりでないイベントが受信された場合は、それらの前のイベントが受信されるまで保留する必要があります。次に、その特定のグループのキーに基づいて、HBase などのデータ ストアに格納します。
問題は、そのような不完全なグループの数が一度に数百万になる可能性があることです。不完全なグループへの高速な追加と、受信したイベントを順序付けされていない状態で保持できるものが必要になります。これについてどうすればよいですか?
browser - アプリを使用せずに Android ファイル システムにアクセスし (ディレクトリをナビゲートするなど)、ブラウザーを介してデータをストリーミングするにはどうすればよいですか?
リモート オーディオ プレーヤーのクライアント側アプリケーションを開発しようとしています。サーバー側のアプリケーションを開発しましたが、Android 側で迷っています。
音楽ディレクトリ内のすべてのファイルをナビゲートし、Android フォンに保存されているリストを取得して、wifi 経由で PC に音楽データを送信したいと考えています。これは可能ですか?適切なアプリを作成せずにこれを実装できますか? これどうやってするの?
apache-storm - Storm マルチフィールドのグループ化
私がやろうとしているのは、ストリームを 2 つのフィールド ( "remote-client-ip", "request-params"
) でグループ化し、各グループ内のタプルの数を数えることです。そして、それらを組み合わせて地図にします。これが私のトポロジです:
しかし、デバッグ後、最初はデータ ストリームがブロックされていることがわかりましgroupBy()
た。これは複数フィールドのグループ化です。Count()
後続の集計ステートメントでは何も実行されませんでした。
そのため、複数フィールドのグループ化と集計の間の相互作用に関するいくつかの概念を誤解していると思います。
私の憶測が正しいか間違っているか教えてください。ありがとうございました!
apache-storm - Apache Storm の限界に到達する
を使用して Web アプリケーションを実装しようとしていますApache Storm
。
アプリケーションは広告リクエストの膨大な負荷 ( - 100 トランザクション/秒)を
受け取り、簡単な計算を行ってから、最大レイテンシ 10 ミリ秒でNoSQL データベースに結果を保存します。100 TPS
Cassandra
その書き込み機能のシンクとして使用しています。
ただし、すでに8 ms
要件を超えており、100ms
.
ボルトの並列処理を使用して、バッファー (Disruptor バッファー) のサイズを最小限に抑え、トポロジーのバランスをとろうとしました。
しかし、私たちはまだです20ms
。
4 ワーカー (8 コア / 16GB) の場合、20k TPS
まだ非常に少ないです。
最適化のための提案はありますか、それとも(の制限)
の制限に達しただけですか?Apache Storm
Java
neo4j - Apache Samza ローカル ストレージ - KV ストアの代わりに OrientDB / Neo4J グラフ
Apache Samza は、ローカル ストレージのストレージ エンジンとして RocksDB を使用します。これにより、ステートフルなストリーム処理が可能になります。ここに非常に優れた概要があります。
私のユースケース:
- Apache Kafka などのシステムから取得した、処理したいイベントの複数のストリームがあります。
- これらのイベントは状態を作成します。追跡したい状態は、以前に受信したメッセージに基づいています。
- 計算された状態に基づいて、新しいストリーム イベントを生成したいと考えています。
- 入力ストリーム イベントは高度に接続されており、OrientDB / Neo4J などのグラフは、データをクエリして新しいストリーム イベントを作成するための理想的な媒体です。
私の質問:
KV 以外のストアを Samza のローカル ストレージとして使用することはできますか? OrientDB / Neo4J でこれを行ったことがあり、例を知っている人はいますか?
real-time - ローリング期間で予期されるイベントが欠落している場合の Apache Samza 集計ルール
私のユースケースは、期待されるイベントが X 時間後にリアルタイムで受信されなかったエンティティを特定することです。
例: 時間 T に PaymentInitiated イベントを受信したが、T+X までに PaymentFailed / PaymentAborted / PaymentSucedded のいずれも受信しなかった場合、PaymentInitiated イベントの詳細と共に PaymentStuck というトリガーを発生させます。
一定の時間間隔ではなく、各イベントの期間 X をローリングするため、Apache Samza でそのようなユースケースをモデル化するにはどうすればよいでしょうか。
ありがとう、ハリッシュ