メッセージングミドルウェア--RabbitMQ(c)の中核となる概念とRabbitMQのAMQPプロトコルを理解します!

注意を探しています

コアの概念とRabbitMQのAMQPプロトコルを理解します!

序文

この章で学習は、私たちは次のような知識を理解することができます。

  • なぜインターネットの巨人の選択RabbitMQの?
  • どのように高性能な道路RabbiMQが行われていますか?
  • AMQP高度なプロトコルは何ですか?
  • コアコンセプトは何AMQPのですか?
  • RabbitMQの全体的なアーキテクチャモデルのように見えますか?
  • RabbitMQのメッセージングは​​どのように循環でしょうか?

1.知人のRabbitMQ

RabbitMQのは、異種の共通のプロトコルを介してアプリケーション間で使用されるオープンソースのメッセージ・ブローカとキューサーバー、あるデータを共有し、RabbitMQのが使用している(クロス言語クロスプラットフォームを達成するためのRabbitMQ機構)アーラン書き込むために言語を、そしてRabbitMQのです基づいてAMQPプロトコル。

上記はあくまで一つの文を通じ、私たちは疑問や質問の多くを持っている必要があります信じています。

  • 最終的にはどのようにRabbitM満期?
  • どの業界で使用について?使用中のどのメーカー?なぜ?
  • RabbitMQのを含め、最終的に特性は何ですか?
  • RabbitMQのはなぜ書くためのErlang言語を使うのか?
  • AMQPプロトコルは何ですか?具体的にどのようなプロトコルAMQP仕様は内側にありますか?

私は、私のような誰もがこのような疑問を持っていると信じています。その後、我々はRabbitMQのにそれを学ぶために一緒に働きます。

私たちは、最初の質問を理解するために来ます。

2.なぜインターネットの巨人選択RabbitMQの?

どの業界で使用について?使用中のどのメーカー?なぜ?利点は何ですか?私の知る限りでは:落下、どこへ行く米国のグループ、見出しを...

塩基成分は、その根底にあるメッセージ通信をRabbitMQのように、これらのメーカーは、インターネットを使用しています。根本的原因:

  1. オープンソース、優れた性能、安定性の保証
  2. 信頼性の高いメッセージ配信モード(確認)、リターンモード(リターン)を提供
  3. そして、拡張性が強く、豊富なAPIに完全統合されたSpringAMQPなり
  4. リッチクラスタモデル、表情構成、HA(高可用性)モデル、ミラーリング待ち行列モデル
  5. データは可用性の前提の下で、高い信頼性を実現失っていないことを確認

どのように高性能な道路3 RabbiMQが行われていますか?

それが使用していることです理由Erlangの言語を、Erlangの言語オリジナルのモードスイッチがブローカーの間RabbitQパフォーマンスデータ交換を行いアーキテクチャの分野であるが、非常に良いです。

もう一つのポイントは、また、作者に依存して、作者のRabbitMQ RabbitMQのは簡単なスイッチへのErlang言語と最初に、開発の間に開発され、その後、彼が見つけるために驚いた:アーランの利点を:アーランとネイティブソケットとして良い遅延効果があります。私はそれが一定の理解のパフォーマンスの種類、我々はソケットの友人に連絡すると信じています。RPC通信フレームワークのように、我々は精通しています。たとえば:ダボ、それは下のネットワークプログラミングよりもネッティー、ネッティー何も使用することがある高性能の王、それはより多くの何もないソケットそれの特性に基づいて、我々はRabbitMQの理由の完全な選択をしています。実際には、我々は主要な目的考慮事項は、これが存在する場合には、RabbitMQのかを選択します。ときRabbtMQノードRabbitMQの遅延と応答へのメッセージ。

4. AMQP高度なメッセージキュープロトコルとは何ですか?

  • AMQPフルネーム:高度なメッセージキュープロトコル(アドバンスト・メッセージキュープロトコル)

AMQPは、定義された:バイナリプロトコル現代的な機能。それはメッセージ指向ミドルウェアの設計のためのオープンな標準のアプリケーション層のプロトコルで、ユニファイドメッセージングサービスのアプリケーション層の標準的な高度なメッセージキュープロトコルのプロバイダです。

これは、Java JMSに似ています。アッパー仕様の比較は、メッセージングミドルウェアの様々なを開発することができ、この仕様に基づいています。

AMQPプロトコルモデル

モデル分析

Pubilsherアプリケーション:プロデューサーによって生成アプリケーションメッセージは、サーバー側を投げました。

サーバー:ノードのRabbitMQを指し、

仮想ホスト:ウェブホスティング、ルートの一番上の比較、ルータに似たような概念。その後の導入

取引所:スイッチ、直接Exchangeに配信されたメッセージのプロデューサーに。「サーバー - >仮想ホスト - >取引 - しかし、三つのプロセスを経るします

最初のメッセージを送信するためにどのサーバーを決定、あなたが接続を確立するために行く必要があり、その上でいくつかのアドレスを設定し、。仮想ホストに配信された第二の層は、定義する必要があります。取引所に配信される第3の層は、また、定義される必要があります。

消費者のアプリケーション側のコンシューマアプリケーションを見て、消費者側はキュー内のメッセージがある場合、メッセージキューを監視する必要があるので、彼らは消費者を出しました。だから、Exchangeとメッセージキューの間で、結合関係が存在するフォローアップの詳細を持っています。

5. AMQPコアコンセプトは何ですか?

AMQP中核となる概念:

  • サーバー:また、ブローカーとして知られているが、クライアントがAMQPサービスエンティティを達成するために、リンクを受け取り、
  • 接続:リンク、ブローカー・アプリケーションは、ネットワークに接続します
  • チャンネル:ネットワークチャネル、ほとんどすべての操作のは、(データの読み出し、書き込み)チャネルで行われ、チャネルは、メッセージの読み取りと書き込みのチャンネルです。クライアントは、セッションの代わりに、各タスクの複数のチャンネル、チャンネルを作成することができます。
  • メッセージ:メッセージ、サーバーおよび体組成と性質によって、アプリケーション間のデータ転送。プロパティは、メッセージの優先度、遅延、およびその他の高度な機能として、メッセージを修正することができる;ボディは、メッセージ本体です。
  • 仮想ホスト:仮想アドレス、論理的な分離、最上位のメッセージのルーティングを実行するため。いくつかのExchangeおよびキューを有することができる仮想ホストは、同じことが内部の仮想ホストとExchangeのキューと同じ名前を持つことはできません。論理的な概念、同様のRedisの論理データベース。特定のサービスを分割するために使用します。
  • 交換:スイッチ、ルーティングキーバインディングに応じてキューにメッセージを転送するメッセージを受信します
  • 結合:Exchangeとキューとの間の仮想接続を、結合は、ルーティングキーに含めることができます
  • キールーティング:ルーティング株を、仮想マシンは、どのルート、特定のメッセージをすることを決定するために使用できます。
  • キュー:また、メッセージキュー、メッセージキューとして知られているメッセージを保存し、消費者に転送します。

コアコンセプトは、一般的な理解を持っている上に、将来を詳細に説明します。

6. RabbitMQの全体的なアーキテクチャモデルのように見えますか?

RabbitMQのロジックチャート
Exchangeへの生産者のメッセージ配信は、Exchangeは、だから我々はちょうどのみ指定されたキューに耳を傾ける必要がある、私たち消費者に指定されたExchangeにメッセージを配信するために生産者に焦点を当てる必要があります。キューに配信。それは簡単なメカニズムです。私たちは、結合せずに、これらの2、消費者がアップ交換するから心配する必要はありませんが、生産者が配信キューに焦点を当てる必要がないためにどの、マップを通して見ることができます。主に取引所とキューとの間の関係は、バインディングを持っている必要があります。

7. RabbitMQのメッセージングは​​どのように循環でしょうか?

メッセージフロー図

配信されるメッセージのメッセージ交換、交換結合メッセージキューの生産に生産Publisherアプリケーション3つのキューが唯一のキューがニュースを受け取った理由を、複数のメッセージキューを通じてバインドすることができますか?取引所は、主にルーティング機能によるものです。このルートは、まず、2つの非常に重要な点があるルーティングキー、このルートである:あなたがメッセージの交換を送信する必要があります。第二:あなたが指定したキューにメッセージをキーメッセージルーティングを持参し、Exchangeとメッセージキュー、主要経路を通るルートを通じて結合関係を確立する必要がある場合。その後、我々は消費者が直接行にキューを監視終了、あなたが過ごすことができます。

文末

個人的なマイクロチャネル公衆番号へようこそ注意:Coderのプログラムの最新オリジナルな技術に関する記事と無料の学習教材のため、多くのブティックマインドマップ、インタビューデータ、PMPの準備資料あなたがリードするために、待っているあなたは、いつでも、どこでも技術的な知識を習得することができます!QQのグループを作成します:315 211 365を、私たちは一緒にグループ交換研究に歓迎します。ありがとうございます!また、必要としている友人の側に導入することができます。

記事のGithubに含ま:github.com/CoderMerlin ... Gitee:gitee.com/573059382/c ...歓迎の注意と星〜

マイクロチャンネル公衆数

参考文献:

「簡潔RabbitMQのメッセージングミドルウェア技術」

推奨読書:

メッセージングミドルウェア--RabbitMQ(a)はWindws / Linux環境構築するために(フルバージョン)

導入されたメッセージングミドルウェア--RabbitMQ(2)主要な主流のメッセージングミドルウェア包括的な比較!

おすすめ

転載: juejin.im/post/5d417ac3e51d4562112e39a2