web-dev-qa-db-ja.com

RabbitMQのようなAdvanced Message Queuing Protocolをいつ使用するのですか?

たとえば、AMQPの使用を検討する必要があるユースケースについて誰かが私に説明できますか? RabbitMQ?長所と短所は何ですか?

45
vbd

1秒あたり多くの要求を受け入れることができるWebサービスがあるとします。また、多くのことを実行する会計システムもあり、その1つはWebサービスからの要求の処理です。

Webサービスとアカウンティングシステムの間にキューを配置すると、次のことが可能になります。

  • 2つのアプリケーション間の結合が少なくなります。これは、両方のアプリケーションがキュー管理システムの構成パラメーターとキューの名前を知っている必要があるためです。ここでの問題点は、通常、キュー管理システムを移動するよりも、アプリケーションを別のサーバーに移動する可能性が高いということです。
  • 短期間に大量のリクエストが発生した場合、会計システムはとにかくそれらをすべて処理することができます
  • それらの数が本当に巨大になった場合、いくつかの要求を持続します

もちろん、アプリケーションの数が2よりもはるかに多く、それらの間の通信を管理する必要がある、より複雑な状況が発生する可能性があります。

Webサービスと別のバックエンドサービスの間にバッファを提供することに加えて、メッセージキューはより高度なシナリオに使用できます。 Rabbit MQ(およびMOMとも呼ばれるその他の成熟したMessage Queue製品-メッセージ指向ミドルウェア)は、さまざまなルールに従ってメッセージをルーティングおよび配信するように構成できます。

たとえば、Pub-Subルーティング手法では、単一のソースがメッセージを送信し、多くのリスナーがメッセージを受信することができます。これは通常、株取引ソフトウェアでユーザーを最新の状態に保つために使用されます。

また、ほとんどのMOMには複数の言語とプラットフォーム用のSDKがあるため、異なるプラットフォームで作成されたアプリケーションを統合するために使用できます。

これらは、MOMによって可能になるシナリオのほんの一部です。

16
Michael Brown