4

仕事に適したツールを見つけようとしています。Kafka、Kestrel などのいくつかの異なるメッセージ キューを調べましたが、PULL 機能を備えたものを探しています。

着信メッセージをキューに押し込む API (分散) があります。次に、キューからメッセージをプルするワーカー (別のマシン) を用意します。これにより、ワーカーがフラッディングされず、キューの負荷を処理できなくなります。

Kafka または Kestrel がこのタイプの機能をサポートしているかどうか疑問に思っています

4

2 に答える 2

8

Kafka は基本的なプッシュプルで動作し、大規模なリアルタイム ストリームを処理できます。また、ドキュメントに記載されているように、Kafka のパフォーマンスはデータ サイズに関して事実上一定であるため、大量のデータを保持しても問題はありません。

ストリーム Checkout Stormの処理用。無料でフォールト トレラントな分散型リアルタイム計算システムであり、スケーリングが非常に簡単です。それはまさにあなたが言及したことを行います(別のマシンでワーカーを実行します)。また、トランザクショントポロジもサポートします。その上、Apache Kafka との非常に優れた統合があります。

ストームチェックの詳細はこちら

したがって、一般的にできることは、消費 API を使用して Kafka キューからメッセージを取得し、それをストーム クラスターにフィードして残りを分散方式で行うことです。Kafka 0.8 は 2 種類の API を提供します。

  • High Level or consumer group
  • Low level or Simple consumer API

前者はデータを消費するための高レベルの抽象化を提供し、スレッド化、エラー処理などの多くのことを処理しますが、後者はメッセージの複数回の読み取り、メッセージ トランザクションなどのメッセージ処理をより細かく制御できます。

高レベルのコンシューマ API の例

コンシューマの簡単な例

于 2013-08-29T14:46:17.197 に答える