著作権:帰属、紙ベースを作成するために他人を許可し、(同じライセンスで元のライセンス契約に基づいて用紙配布する必要がありますクリエイティブコモンズ)
RabbitMQの:
コンセプト:RabbitMQのは、あるプロデューサーと消費者の主にモデル、メッセージを受信、記憶および転送を担当します。
プロデューサー:
プロデューサー:1つのメッセージ配信。
- メッセージは、一般的に、2つのセクションを含みます:
- タグ:、メッセージを記述するために使用されるスイッチなどの名称およびルーティングキー。
- メッセージ本文:メッセージの具体的な内容、JOSN形式。
消費者
消費:消費者がメッセージを受け取る当事者です。
- RabbitMQのコンシューマがキューにサブスクライブし、サーバーに接続し、メッセージをルーティングするプロセスは、メッセージがラベルを破棄され、消費者は、メッセージ本文を取得します
ブローカ:
- メッセージングミドルウェアサービスノード
キュー
- キューは、RabbitMQの内部オブジェクトであるメッセージを格納するために使用され、RabbitMQのだけ多くの消費者を格納するメッセージがキューに同じキューをサブスクライブする、メッセージキューは、それぞれのではなく、複数の消費者に対処するために、均等に共有されます消費者は、すべてのメッセージを受け取ります
スイッチ
- 交換、スイッチルート1つ以上のキューへのメッセージ、ルートは破棄されていない場合
バインディング:バインディング:
- 結合によってキューに関連付けられたスイッチがプロデューサは、スイッチにメッセージを送信する必要RoutingKey、及び場合BindingKey RoutingKey一致するとき、メッセージは対応するルーティングされた結合キーBindingKeyを結合することを含むのRabbitMQキュー。
スイッチタイプ:
-
RabbitMQcy一般的なタイプは、交換器、ファンアウト、直接、トピック、ヘッダ、システムおよびカスタム:AMQPプロトコル別のプロトコルがあり、二つのタイプがあります
- ファンアウト:それはすべてのスイッチに送信されますすべてのへのルートのメッセージをスイッチキューにバインドされました
-
ダイレクト: 直接ルーティング型スイッチも非常に単純なルールである、ものへのルートメッセージを BindingKeyとRoutingKey完全一致キュー
- トピック:スイッチのルーティングルールの直接の種類完全一致BindingKeyとRoutingKeyですが、この方法は、厳密な一致、実際のビジネスニーズを満たしていない、多くの場合、スイッチの話題タイプが一致規則に拡張されます。RoutingKeyドット「」、ドットで区切られた独立した文字の単語と呼ばれるのです。BindingKey:二つの特別な文字列「*」や「#」があるかもしれませんが、マルチ標準語に一致するように、「#」、単語を一致させるために使用されるファジーマッチング、として使用されています
- ヘッダー:ヘッダー情報と一致ルーティングルールに切り替えキーの種類に依存しないが、メッセージヘッダーの属性に応じて送信されたコンテンツと一致します。キューに結合した場合、メッセージにアクセスするためにスイッチに送信されるときには、キーと値のペアとスイッチを指定RabbitMQのメッセージヘッダ(キーと値のペア)は、比較キー完全一致するかどうか、マッチがキューにルーティングされます。
接続:
- 生産者と消費者、およびRabbitMQのブローカーノードの両方がする必要が接続を確立し、接続は、TCP接続が接続されています、。
- 確立されたTCPと、クライアントはすぐに、各チャネルは、一意のIDが割り当てられ、AMQPチャネルを作成することができます。
Channel信道:
-
接続は、仮想接続の上に構築されています
RabbitMQのは、タスク、チャンネルのなぜ導入を完了するために、接続を使用することができますか?
次のシーン:
- アプリケーションがあり、多くのスレッドが、その後RabbitMQのメッセージ、またはニュースの生産から消費する必要がある接続の数の設立場合は、TCPコネクションがたくさんあり、ピーク使用の場合には、パフォーマンスのボトルネックは、発生RabbitMQの同様のNIO実際、選択TCPを接続多重化。
- 各スレッドチャネル、把持接続TCPコネクションのチャネル多重化を各RabbitMQのスレッドのプライバシーを確保しつつ、