Apache Storm 分散メッセージング システム
Apache Storm はリアルタイム データを処理し、通常、入力はメッセージ キュー システムから取得されます。外部の分散メッセージング システムは、リアルタイム計算に必要な入力を提供します。 Spout はメッセージング システムからデータを読み取り、タプルに変換して Apache Storm にフィードします。興味深いことに、Apache Storm は、ニンバスとスーパーバイザー間の通信に独自の分散メッセージング システムを内部で使用しています。
分散メッセージング システムとは何ですか?
分散メッセージングは、信頼性の高いメッセージ キューの概念に基づいています。メッセージは、クライアント アプリケーションとメッセージング システムの間で非同期的にキューに入れられます。分散メッセージング システムには、信頼性、拡張性、耐久性という利点があります。
ほとんどのメッセージング パターンは、パブリッシュ-サブスクライブ モデル (パブリッシュ-サブスクライブと呼ばれます) に従い、メッセージの送信者は パブリッシャー#と呼ばれます。 ##、そしてメッセージを受け取りたい人は subscribers と呼ばれます。
メッセージが送信者によって公開されると、購読者はフィルタリング オプションを使用して選択されたメッセージを受信できます。通常、フィルタリングには 2 種類あり、1 つはトピック ベースのフィルタリング 、もう 1 つは コンテンツ ベースのフィルタリング です。
pub-sub モデルはメッセージを通じてのみ通信できることに注意してください。これは非常に疎結合なアーキテクチャであり、送信者でさえ購読者が誰であるか知りません。多くのメッセージング パターンにより、メッセージ ブローカーはパブリッシュされたメッセージを交換して、多くのサブスクライバーがタイムリーにアクセスできるようになります。実際の例としては、スポーツ、映画、音楽などのさまざまなチャンネルを公開する Dish TV があります。誰でも自分のチャンネル セットに登録し、利用可能な場合はチャンネルを取得できます。 #次の表では、一般的な高スループット メッセージング システムのいくつかについて説明します -説明 | |
---|---|
Kafka は LinkedIn で開発され、後に Apache のサブプロジェクトになりました。 Apache Kafka は、ブローカー対応で耐久性のある分散パブリッシュ/サブスクライブ モデルに基づいています。 Kafka は高速でスケーラブルで効率的です。 | |
RabbitMQ は、オープンソースの分散型堅牢メッセージング アプリケーションです。使いやすく、すべてのプラットフォームで実行できます。 | |
JMS は、あるアプリケーションから別のアプリケーションへのメッセージの作成、読み取り、送信をサポートするオープン ソース API です。保証されたメッセージングを提供し、パブリッシュ/サブスクライブ モデルに従います。 | |
ActiveMQ メッセージング システムは、JMS 用のオープン ソース API です。 | |
ZeroMQ は、エージェントレスのピア メッセージ処理です。プッシュプル、ルーター/リセラーのメッセージング モードを提供します。 | |
Kestrel は、高速で信頼性が高く、シンプルな分散メッセージ キューです。 |