仕事に適したツールを見つけようとしています。Kafka、Kestrel などのいくつかの異なるメッセージ キューを調べましたが、PULL 機能を備えたものを探しています。
着信メッセージをキューに押し込む API (分散) があります。次に、キューからメッセージをプルするワーカー (別のマシン) を用意します。これにより、ワーカーがフラッディングされず、キューの負荷を処理できなくなります。
Kafka または Kestrel がこのタイプの機能をサポートしているかどうか疑問に思っています
仕事に適したツールを見つけようとしています。Kafka、Kestrel などのいくつかの異なるメッセージ キューを調べましたが、PULL 機能を備えたものを探しています。
着信メッセージをキューに押し込む API (分散) があります。次に、キューからメッセージをプルするワーカー (別のマシン) を用意します。これにより、ワーカーがフラッディングされず、キューの負荷を処理できなくなります。
Kafka または Kestrel がこのタイプの機能をサポートしているかどうか疑問に思っています
Kafka は基本的なプッシュプルで動作し、大規模なリアルタイム ストリームを処理できます。また、ドキュメントに記載されているように、Kafka のパフォーマンスはデータ サイズに関して事実上一定であるため、大量のデータを保持しても問題はありません。
ストリーム Checkout Stormの処理用。無料でフォールト トレラントな分散型リアルタイム計算システムであり、スケーリングが非常に簡単です。それはまさにあなたが言及したことを行います(別のマシンでワーカーを実行します)。また、トランザクショントポロジもサポートします。その上、Apache Kafka との非常に優れた統合があります。
ストームチェックの詳細はこちら
したがって、一般的にできることは、消費 API を使用して Kafka キューからメッセージを取得し、それをストーム クラスターにフィードして残りを分散方式で行うことです。Kafka 0.8 は 2 種類の API を提供します。
High Level or consumer group
Low level or Simple consumer API
前者はデータを消費するための高レベルの抽象化を提供し、スレッド化、エラー処理などの多くのことを処理しますが、後者はメッセージの複数回の読み取り、メッセージ トランザクションなどのメッセージ処理をより細かく制御できます。