rebbitMQwindowsのRabbitMQインストールと使用(インストールと簡単なチュートリアル)でのpythonを使用します

1.はじめに

RabbitMQの(ウサギメッセージキュー)は人気のあるオープンソースのメッセージキューイングシステムである、Erlangの言語を用いて開発しました。
 
1.1説明キーワード:
ブローカー:メッセージキューサーバーエンティティ。
為替:メッセージスイッチを指定するものをキューにルーティングされたルールに従ってメッセージ。
キュー:ベクトルのメッセージキューは、各メッセージは、1つ以上のキューに入れられます。
結合:結合、その役割は、規則に従ってルーティングおよびキューバインドを交換することです。
主なルーティング:キーワードは、このキーワードに基づいて配信されるメッセージの交換をルーティングします。
バーチャルホスト:ブローカは異なるユーザー特権分離として、より多くのバーチャルホストを提供することができますウェブホスティング、。
プロデューサー:ニュースのプロデューサーは、メッセージを配信するプログラムです。
消費者:消費者のニュースは、プログラムがメッセージを受け入れることです。
チャネル:メッセージチャネルは、各クライアントの接続は、複数のチャネル、セッションのタスクを表す各チャネルを確立することができます。
 
1.2メッセージキュー操作機構:
(1)メッセージキュークライアントは、チャネルを開くために、サーバーに接続します。
(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.2メッセージキュー操作機構:
(1)メッセージキュークライアントは、チャネルを開くために、サーバーに接続します。
(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受信したメッセージを実行します。

おすすめ

転載: www.cnblogs.com/lice-blog/p/11617813.html
おすすめ