1

を使用して Web アプリケーションを実装しようとしていますApache Storm

アプリケーションは広告リクエストの膨大な負荷 ( - 100 トランザクション/秒)
受け取り、簡単な計算を行ってから、最大レイテンシ 10 ミリ秒でNoSQL データベースに結果を保存します。100 TPS


Cassandraその書き込み機能のシンクとして使用しています。

ただし、すでに8 ms要件を超えており、100ms.

ボルトの並列処理を使用して、バッファー (Disruptor バッファー) のサイズを最小限に抑え、トポロジーのバランスをとろうとしました。

しかし、私たちはまだです20ms

4 ワーカー (8 コア / 16GB) の場合、20k TPSまだ非常に少ないです。

最適化のための提案はありますか、それとも(の制限)
の制限に達しただけですか?Apache Storm
Java

4

2 に答える 2

2

低レイテンシと高スループットの間にはトレードオフがあります。

本当に高いスループットが必要な場合は、バッファーのサイズを大きく調整するバッチ処理に依存するか、Trident を使用する必要があります。

タプルを他のワーカーに送信しないようにすることで、待ち時間を短縮できます。(localOrShuffleGrouping)

stop-the-world の原因となる GC を監視することを忘れないでください。低レイテンシが必要な場合は、最小限に抑える必要があります。

于 2015-07-12T00:05:31.883 に答える