1.はじめに
RabbitMQの(ウサギメッセージキュー)は人気のあるオープンソースのメッセージキューイングシステムである、Erlangの言語を用いて開発しました。
1.1説明キーワード:
ブローカー:メッセージキューサーバーエンティティ。
為替:メッセージスイッチを指定するものをキューにルーティングされたルールに従ってメッセージ。
キュー:ベクトルのメッセージキューは、各メッセージは、1つ以上のキューに入れられます。
結合:結合、その役割は、規則に従ってルーティングおよびキューバインドを交換することです。
主なルーティング:キーワードは、このキーワードに基づいて配信されるメッセージの交換をルーティングします。
バーチャルホスト:ブローカは異なるユーザー特権分離として、より多くのバーチャルホストを提供することができますウェブホスティング、。
プロデューサー:ニュースのプロデューサーは、メッセージを配信するプログラムです。
消費者:消費者のニュースは、プログラムがメッセージを受け入れることです。
チャネル:メッセージチャネルは、各クライアントの接続は、複数のチャネル、セッションのタスクを表す各チャネルを確立することができます。
為替:メッセージスイッチを指定するものをキューにルーティングされたルールに従ってメッセージ。
キュー:ベクトルのメッセージキューは、各メッセージは、1つ以上のキューに入れられます。
結合:結合、その役割は、規則に従ってルーティングおよびキューバインドを交換することです。
主なルーティング:キーワードは、このキーワードに基づいて配信されるメッセージの交換をルーティングします。
バーチャルホスト:ブローカは異なるユーザー特権分離として、より多くのバーチャルホストを提供することができますウェブホスティング、。
プロデューサー:ニュースのプロデューサーは、メッセージを配信するプログラムです。
消費者:消費者のニュースは、プログラムがメッセージを受け入れることです。
チャネル:メッセージチャネルは、各クライアントの接続は、複数のチャネル、セッションのタスクを表す各チャネルを確立することができます。
1.2メッセージキュー操作機構:
(1)メッセージキュークライアントは、チャネルを開くために、サーバーに接続します。
(2)宣言クライアント交換、および関連するプロパティを提供します。
(3)クライアントは、キューを宣言し、関連するプロパティを設定します。
(4)クライアントは、ルーティングキーを使用して、交換と結合キューの間の良好な関係を確立します。
(5)クライアント交換への配信メッセージ。
(2)宣言クライアント交換、および関連するプロパティを提供します。
(3)クライアントは、キューを宣言し、関連するプロパティを設定します。
(4)クライアントは、ルーティングキーを使用して、交換と結合キューの間の良好な関係を確立します。
(5)クライアント交換への配信メッセージ。
(6)交換メッセージと結合キーが設定されているによると、メッセージを受信した後、メッセージは、一つ以上のキューに配信されます。
注意:それは持続した場合にキューを宣言した後、次の時間は、あなたはキューがRabbitMQの中にすでに存在するため、宣言する必要はありません!!!
たとえば、次の例では、最初にキューを宣言されています!!!
1.3exchangeタイプ:
1.Directスイッチ
特徴:配信のための重要な基礎
このような「ハロー」、その後、メッセージは唯一の「hello」をキューに配信されるためのキーを設定バインドする場合、クライアントによって送信されるためのルーティングキーの設定など。
2.Topicスイッチ
特徴:鍵配信パターンマッチングの後、記号「#」は1つ以上の単語、記号「*」を一致する単語に一致します
たとえば、 "ABC。#" "abc.def.ghi" マッチング、 "ABC。*" のみ "abc.defは" マッチ。
3.Fanoutスイッチ
特徴:スイッチにバインドされているすべてのキューに配信何もキーません、メッセージが入ってくる時に、ブロードキャストモードを取ります、
2.ビルド環境
Windows環境にインストール2.1のRabbitMQ、以下のチュートリアル:
2.2インストールナキウサギモジュール
Pythonの使用RabbitMQのサービスは、あなたはここで、既製ライブラリナキウサギ、txAMQPまたはPY-amqplibを使用ナキウサギを選択することができます。
コマンドラインから直接ピップのコマンドを使用します。
ナキウサギをインストールするPIP
3.サンプルテスト
メッセージ内容の例はsend.pyからのRabbitMQ、RabbitMQのから送信receive.py send.py受信情報に伝達されます。
Pは、生産者を意味する、農産物を表し、また、送信者と呼ばれてもよい、例としてはsend.py示しました。
Cは、消費者を表し、消費者の意味は、また、受信機として知られ、例としてはreceive.pyを示しました。
レッドはキュー中間の意味の例は、ハローキューを示したことを示しています。
send.py
!。1位は/ usr / binに/ envがのpython3する UTF-8 - * - : - * -コーディング2位。 3。 4インポートPIKA。 5インポートランダムに。 6。 7#新しい接続、RabbitMQのがローカルにインストール、ホスト名はlocalhost 'のさ。 8ホスト名を='。 192.168.1.133」 。9 pika.ConnectionParametersパラメータ=(ホスト名) 10 =接続pika.BlockingConnection(パラメータ) 。11 12は、チャネル#作成することである 13をconnection.channelチャンネル=(IS) 14#キューを宣言し、生産者と消費者は、宣言する必要があります同じキューは、パーティーにリンクされている場合を防ぐために使用され、他は正常に動作することができます 15 channel.queue_declare(キュー= 'こんにちは') 16を 17 random.randint数=(1、1000)。 18は、本体=「Hello Worldのです:% S「%番号 19#スイッチ;キュー名、メッセージが送信されたキューを示し、メッセージコンテンツ 20#routing_keyのみ送信キューに示す匿名のスイッチを使用するときに指定する必要が 21 channel.basic_publish(交換= ''、routing_key = ''こんにちは、本体=本体) 22プリント"[X]送信%S" %本体 23 connection.close()
receive.py
1#は/ usr / binに/のenvのpython3! 2# - * -コーディング:UTF-8 - * - 3 4インポートPIKA 5 6ホスト名= '192.168.1.133' 7つのパラメータ= pika.ConnectionParameters(ホスト名) 8接続= PIKA。 BlockingConnection(パラメータ) 9 10#创建通道 11チャンネル= connection.channel() 12 channel.queue_declare(キュー= 'こんにちは') 13 14 15 DEFコールバック(CH、メソッド、プロパティ、本体) 16プリント"[X]は受信%のR」%(本体) 17 来接收信息18#の告诉のRabbitMQ使用コールバック 19 channel.basic_consume(コールバックキュー= 'こんにちは'、NO_ACK = TRUE) 20 キューが、そこに情報を受信開始#21れ、ブロッキング状態に入ります情報には、コールバック処理、終了プレスCtrl + Cと呼ばれます 22印刷'[*]メッセージを待っ。Ctrlキーを押しながら+ C」を終了するには )(23 channel.start_consumingを
さんがメッセージを送信send.py実行してみましょう:
receive.py受信したメッセージを実行します。
1.はじめに
RabbitMQの(ウサギメッセージキュー)は人気のあるオープンソースのメッセージキューイングシステムである、Erlangの言語を用いて開発しました。
1.1説明キーワード:
ブローカー:メッセージキューサーバーエンティティ。
為替:メッセージスイッチを指定するものをキューにルーティングされたルールに従ってメッセージ。
キュー:ベクトルのメッセージキューは、各メッセージは、1つ以上のキューに入れられます。
結合:結合、その役割は、規則に従ってルーティングおよびキューバインドを交換することです。
主なルーティング:キーワードは、このキーワードに基づいて配信されるメッセージの交換をルーティングします。
バーチャルホスト:ブローカは異なるユーザー特権分離として、より多くのバーチャルホストを提供することができますウェブホスティング、。
プロデューサー:ニュースのプロデューサーは、メッセージを配信するプログラムです。
消費者:消費者のニュースは、プログラムがメッセージを受け入れることです。
チャネル:メッセージチャネルは、各クライアントの接続は、複数のチャネル、セッションのタスクを表す各チャネルを確立することができます。
為替:メッセージスイッチを指定するものをキューにルーティングされたルールに従ってメッセージ。
キュー:ベクトルのメッセージキューは、各メッセージは、1つ以上のキューに入れられます。
結合:結合、その役割は、規則に従ってルーティングおよびキューバインドを交換することです。
主なルーティング:キーワードは、このキーワードに基づいて配信されるメッセージの交換をルーティングします。
バーチャルホスト:ブローカは異なるユーザー特権分離として、より多くのバーチャルホストを提供することができますウェブホスティング、。
プロデューサー:ニュースのプロデューサーは、メッセージを配信するプログラムです。
消費者:消費者のニュースは、プログラムがメッセージを受け入れることです。
チャネル:メッセージチャネルは、各クライアントの接続は、複数のチャネル、セッションのタスクを表す各チャネルを確立することができます。
1.2メッセージキュー操作機構:
(1)メッセージキュークライアントは、チャネルを開くために、サーバーに接続します。
(2)宣言クライアント交換、および関連するプロパティを提供します。
(3)クライアントは、キューを宣言し、関連するプロパティを設定します。
(4)クライアントは、ルーティングキーを使用して、交換と結合キューの間の良好な関係を確立します。
(5)クライアント交換への配信メッセージ。
(2)宣言クライアント交換、および関連するプロパティを提供します。
(3)クライアントは、キューを宣言し、関連するプロパティを設定します。
(4)クライアントは、ルーティングキーを使用して、交換と結合キューの間の良好な関係を確立します。
(5)クライアント交換への配信メッセージ。
(6)交換メッセージと結合キーが設定されているによると、メッセージを受信した後、メッセージは、一つ以上のキューに配信されます。
注意:それは持続した場合にキューを宣言した後、次の時間は、あなたはキューがRabbitMQの中にすでに存在するため、宣言する必要はありません!!!
たとえば、次の例では、最初にキューを宣言されています!!!
1.3exchangeタイプ:
1.Directスイッチ
特徴:配信のための重要な基礎
このような「ハロー」、その後、メッセージは唯一の「hello」をキューに配信されるためのキーを設定バインドする場合、クライアントによって送信されるためのルーティングキーの設定など。
2.Topicスイッチ
特徴:鍵配信パターンマッチングの後、記号「#」は1つ以上の単語、記号「*」を一致する単語に一致します
たとえば、 "ABC。#" "abc.def.ghi" マッチング、 "ABC。*" のみ "abc.defは" マッチ。
3.Fanoutスイッチ
特徴:スイッチにバインドされているすべてのキューに配信何もキーません、メッセージが入ってくる時に、ブロードキャストモードを取ります、
2.ビルド環境
Windows環境にインストール2.1のRabbitMQ、以下のチュートリアル:
2.2インストールナキウサギモジュール
Pythonの使用RabbitMQのサービスは、あなたはここで、既製ライブラリナキウサギ、txAMQPまたはPY-amqplibを使用ナキウサギを選択することができます。
コマンドラインから直接ピップのコマンドを使用します。
ナキウサギをインストールするPIP
3.サンプルテスト
メッセージ内容の例はsend.pyからのRabbitMQ、RabbitMQのから送信receive.py send.py受信情報に伝達されます。
Pは、生産者を意味する、農産物を表し、また、送信者と呼ばれてもよい、例としてはsend.py示しました。
Cは、消費者を表し、消費者の意味は、また、受信機として知られ、例としてはreceive.pyを示しました。
レッドはキュー中間の意味の例は、ハローキューを示したことを示しています。
send.py
!。1位は/ usr / binに/ envがのpython3する UTF-8 - * - : - * -コーディング2位。 3。 4インポートPIKA。 5インポートランダムに。 6。 7#新しい接続、RabbitMQのがローカルにインストール、ホスト名はlocalhost 'のさ。 8ホスト名を='。 192.168.1.133」 。9 pika.ConnectionParametersパラメータ=(ホスト名) 10 =接続pika.BlockingConnection(パラメータ) 。11 12は、チャネル#作成することである 13をconnection.channelチャンネル=(IS) 14#キューを宣言し、生産者と消費者は、宣言する必要があります同じキューは、パーティーにリンクされている場合を防ぐために使用され、他は正常に動作することができます 15 channel.queue_declare(キュー= 'こんにちは') 16を 17 random.randint数=(1、1000)。 18は、本体=「Hello Worldのです:% S「%番号 19#スイッチ;メッセージ内容、キュー名は、メッセージが送信されたキューを示す 20#routing_keyのみ送信キューに示す匿名のスイッチを使用するときに指定する必要が 21 channel.basic_publish(交換= ''、routing_key = ''こんにちは、本体=本体) 22プリント"[x]は送信%S" %本体 23 connection.close()
receive.py
!1#は/ usr / binに/ ENVはのpython3する UTF-8 - * - : - * -コーディングの2位。 3。 4インポートPIKA。 5。 6ホスト名= '192.168.1.133'。 7つのpika.ConnectionParametersパラメータ=(ホスト名)。 8 =接続PIKA。 BlockingConnection(パラメータ) 。9 10チャネル#作る 。11 =チャネルconnection.channel()を 12 channel.queue_declare(キュー= 'ハロー')である 13は、 14 コールバックDEF(CH、メソッド、プロパティ、本体)15: 16プリント「[X]は受信しましたR&LTの%「%(本体) 。17 18を用いるのRabbitMQ#が情報を受信するためにコールバックを伝えるある 。19 channel.basic_consume(コールバックキュー= 'こんにちは'、NO_ACK = TRUE) 20である キューが、そこに情報を受信開始#21れ、ブロッキング状態に入ります情報には、コールバック処理、終了プレスCtrl + Cと呼ばれます 22印刷'[*]のメッセージを待っています。Ctrlキーを押しながら+ C」終了する )(23 channel.start_consumingを
さんがメッセージを送信send.py実行してみましょう:
receive.py受信したメッセージを実行します。