RabbitMQ 01 概要

メッセージキューとは

大量のリモート呼び出しを行う場合、従来の HTTP メソッドではブロッキングが発生しやすいため、メッセージ キューの概念が導入されます。つまり、メッセージをキューに入れてキューに従って消費します。

送信者によって送信された情報をキューに入れることができます。新しいメッセージがキューに追加されると、受信者は処理するように通知されます。一般に、メッセージの送信者はプロデューサーと呼ばれ、受信者はコンシューマーと呼ばます

このようにして、すべてのリクエストをメッセージ キューにスローし、コンシューマによって取り出すことができ、コンシューマに直接接続する代わりにミドルウェアが追加されるため、優れた分離ソリューションとなります。また、同時実行性が高い場合、コンシューマの機能が限られているため、メッセージ キューはピークのシェービングと谷の埋め込みの役割も果たし、リクエストの一部を蓄積します。その後、コンシューマはリクエストをゆっくりと処理することになります。直接電話のようなリクエストをしたり、大勢の人が集まったりします。

メッセージキューコンポーネント

ActiveMQ、RabbitMQ、RocketMQ、および Kafka は、現在主流のメッセージ キュー コンポーネントです。それらの特徴は次のとおりです。

上記の要素に基づいて、RabbitMQ がデモンストレーション用のメッセージ キュー コンポーネントとして選択されます。その理由は次のとおりです。

  • スループットは高くありませんが、中小規模のプロジェクトには十分です。
  • 強力な適時性。遅延は微妙なレベルに達し、同様の製品と比較して最も低い遅延です。
  • 高いユーザビリティ。完全な高可用性実装メカニズムを提供します。
  • 強い信頼性。基本的にパケットロスはありません。
  • 強力な同時実行機能。Erlang に基づいて開発されており、優れたパフォーマンスと低遅延の豊富なスイッチ機能を提供します。
  • オープンソースで無料。使用コストはかからず、コミュニティは非常に活発で、製品は安定しています。

メッセージ キュー コンポーネントの機能と実装は似ています。1 つのコンポーネントをよく学べばすべてを取得できます。また、メッセージ キュー コンポーネント間の差異をシールドし、統一された標準を使用できる Spring Cloud Stream などのメッセージ キュー接続コンポーネントもあります。メッセージキューコンポーネントを呼び出します。

したがって、メッセージ キューをマスターしたい場合は、RabbitMQ から始めることをお勧めします。

ラビットMQ

公式サイト: https: //www.rabbitmq.com

RabbitMQ は、アドバンスト メッセージキュー プロトコル ( AMQP ) を実装するオープン ソースのメッセージ ブローカー ソフトウェア (メッセージ指向ミドルウェアとも呼ばれます)です。RabbitMQ サーバーはErlang言語で記述されており、クラスタリングとフェイルオーバーはOpen Telecommunications Platformフレームワーク上に構築されています。すべての主要なプログラミング言語には、プロキシ インターフェイスと通信するクライアント ライブラリがあります。

Rabbit Technologies Ltd. は、 RabbitMQ の開発とサポートを提供しています。

  • 当初、Rabbit Technology は 2007 年に LSHIFT と CohesiveFT の間で設立された合弁会社でした。
  • 2010 年 4 月に、VMware の子会社である SpringSource に買収されました。
  • RabbitMQ は 2013 年 5 月に GoPivotal の一部となりました。

その特徴は次のとおりです。

  • 数万人のユーザーを抱える RabbitMQ は、最も人気のあるオープン ソース メッセージ キューの 1 つで、T-Mobile から Runtastic に至るまで、小規模なスタートアップから大企業まで世界中で使用されています。
  • 軽量でオンプレミスとクラウドに簡単に導入でき、複数のメッセージング プロトコルをサポートします。
  • 大規模な高可用性要件を満たすために、分散構成およびフェデレーション構成で導入できます。
  • 多くのオペレーティング システムおよびクラウド環境で実行され、最も一般的な言語に対応する幅広い開発者ツールを提供します。

作業工程:

  • プロデューサー (パブリッシャー) : メッセージを生成する端末。
  • チャネル: サーバー接続とクライアント接続の両方でチャネルが使用され、そのチャネルを使用して RabbitMQ サーバーにアクセスします。ここでの通信プロトコルはhttpではなくamqpプロトコルです。
  • 仮想ホスト: 環境の分離と同様に、仮想ホストは異なる環境で個別に構成できます。各仮想ホストには多数の Exchange とキューを含めることができ、各仮想ホストは相互に影響しません。
  • Exchange : リクエストに応じて、対応するメッセージ キューに転送されます。各キューは Exchange にバインドできるため、Exchange はデータをキューに転送できます。実装には多数の異なる Exchange タイプを使用できます。パターンさまざまなメッセージの。
  • メッセージ キュー (Queue) : メッセージ キュー自体。プロデューサーからのすべてのメッセージはメッセージ キューに格納され、コンシューマーがメッセージを取り出すのを待ちます。
  • Consumer : メッセージを消費する端末。

おすすめ

転載: blog.csdn.net/qq_37770674/article/details/130436842