ホームページ  >  記事  >  バックエンド開発  >  RabbitMQ の基本概念と原則の例

RabbitMQ の基本概念と原則の例

零下一度
零下一度オリジナル
2017-06-23 16:35:143076ブラウズ

RabbitMQ の基本概念と原則

1.AMQP (Advanced Message Queuing Protocol) は、アプリケーション層プロトコルのオープン標準であり、メッセージ指向ミドルウェア用に設計されています。

2.RabbitMQ はオープンソースの AMQP 実装であり、サーバー側は Erlang 言語で書かれています。

3.チャンネル

チャンネルは、RabbitMQ を扱うための最も重要なインターフェースであり、Queue の定義、Exchange の定義、Queue と Exchange のバインド、ニュースの投稿など、ほとんどの業務操作が Channel インターフェースで完了します。 。

4.Exchange (プロデューサーはメッセージを Exchange (交換) に送信し、Exchange はメッセージを 1 つ以上のキューにルーティングします (またはキューを破棄します)。 RabbitMQ で一般的に使用される Exchange タイプには、ファンアウト、ダイレクト、トピック、ヘッダーが含まれます。 4)

5.Queue (RabbitMQ の内部オブジェクト、メッセージの保存に使用)

6. 基本的な動作原理

クライアント (プロデューサー) メッセージ送信 --> 交換 (メッセージを対応するキューに保存する)さまざまなタイプを通じて)--> キュー

クライアント (コンシューマ) は、サブスクリプションを通じてキュー内のメッセージを消費します。

上記の基本概念は、 RabbitMQ の基本概念の詳細な紹介からまとめられています

Windows システムに RabbitMQ をインストールします

1. erlang をダウンロードしてインストールします (私は otp_win64_19.3 バージョンを使用します)

ダウンロード アドレス(操作に従って) システムは 32 ビットまたは 64 ビットを選択します)

2. Rabbitmq-server をダウンロードしてインストールします (私は Rabbitmq-server-3.6.10 バージョンを使用しています)

ダウンロード アドレス

インストール後、次の

を参照してください。インストール ディレクトリ

次に、enable DOS コマンド

a を使用して、sbin ディレクトリに移動します。私のインストール ディレクトリは D:RabbitMQServerrabbitmq_server-3.6.10sbin です。D: Enter を入力し、cd RabbitMQServerrabbitmq_server-3.6.10sbin

b. コマンド: rabbitmqctl status

を使用して、インストールが成功したかどうかを確認します。 、ブラウザに「http://127.0」と入力し、「0.1:15672/

」と入力し、ゲストアカウント「ゲスト」パスワード「ゲスト」を入力してログインに成功します。

ゲスト アカウントは管理者アカウントであり、Exchange、キュー、管理者を追加できます。ただし、通常はゲスト アカウントを使用せず、引き続きコマンドを使用してアカウントと権限を追加します。

d: ユーザーの追加:

rabbitmqctl.bat add_user ユーザー名 パスワード

e: 「スーパー管理者」ロールを追加:

rabbitmqctl.bat set_user_tags ユーザー名 管理者

mymq アカウントもスーパーです管理者は、仮想ホストにアクセスできます: アクセスなし。まだアクセスできない仮想マシンを確認して、仮想マシンを追加できます。

f: 仮想マシンを追加します:

rabbitmqctl add_vhost vhostName

次に、myvhost 仮想マシンにはユーザーがありません。次に、アカウントを仮想マシンにバインドします。

g: 仮想マシンとユーザーの権限を定義します:

rabbitmqctl set_permissions -p 仮想マシン名 アカウント名 ".*" ".*" ".*"

h: 習慣で、私は通常ゲストを削除しますアカウント:

rabbitmqctl.bat delete_user ユーザー名

さて、再度管理ページにログインすると正常になり、実際の戦闘が始まります。

EasyNetQの基本的な使い方

EasyNetQをプロジェクトにインストール

EasyNetQはRabbitMQ.Clientに依存しているのでプロジェクトにインストールします。

ニュースを公開

モデルには、キュー名とExchange名を定義するキュー機能があります。次に、Publish メソッドを直接使用して、モデルで指定されたスイッチを介して指定されたキューにメッセージをプッシュします。

コードを実行して、MQ 管理ページを確認してください。

Model で指定されたスイッチ TestQueue.Exchange、Type:topic、 features:D が作成されました。 D:Durable は、デフォルトで作成されるスイッチが durable であることを示します。

メッセージがサブスクライブされていないため、対応するキューはキューに表示されません。

購読購読メッセージ

購読コードに while(true) を付ける必要があるのはなぜですか? コンソール プログラムはフラッシュで実行され、実際には MQ メッセージをサブスクライブできないため、目的はコンソール プログラムを Windows サービスとしてシミュレートすることです。

実際の開発では、Topselfを使ってコンソールプログラムをWindowsサービスに公開するのが一般的です。Topselfについては、後で時間があるときに学習ブログを書きます。

先ほどの公開操作を繰り返して、プロセス全体をテストします。

トピックをカスタマイズする

このようにして、メッセージは Test から始まるすべての Queue キューに送信されます。

SendReceive

は、送受信を通じて指定されたキューにメッセージを送信できます。

以上がRabbitMQ の基本概念と原則の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。