ホームページ  >  記事  >  バックエンド開発  >  PythonによるRabbitMQ動作グラフィックコードの詳細説明

PythonによるRabbitMQ動作グラフィックコードの詳細説明

黄舟
黄舟オリジナル
2017-05-07 10:47:011448ブラウズ


知識の準備

RabbitMQ

RabbitMQ は、AMQP に基づいた完全な再利用可能なエンタープライズ メッセージング システムです。

MQ

MQ は、メッセージ キュー (MQ) の略で、アプリケーション間の通信方法です。
PythonによるRabbitMQ動作グラフィックコードの詳細説明
メッセージキューはパブリッシュ/サブスクライブモデルを使用して動作します。メッセージ送信者は、メッセージを処理した後、分散メッセージ キューにメッセージを送信し、分散メッセージ キューからメッセージを取得して処理を続行します。メッセージ送信者とメッセージ受信者の間には直接的な結合がないことがわかります。メッセージ送信者は分散メッセージ キューにメッセージを送信するとメッセージの処理を終了しますが、メッセージ受信者は分散メッセージ キューからメッセージを取得するだけで済みます。メッセージキュー。メッセージの送信元が不明なまま処理されます。
メッセージキュー通信により、サービスフィンガーAとサービスフィンガーB間の結合度を低く保ち、柔軟なビジネス展開を実現します。

pika

pika は、RabbitMQ チームによって作成された公式 Python AMQP ライブラリです。

インストール起動

$ brew install rabbitmq$ usr/local/sbin/rabbitmq-server

pikaのインストール

pip install pika

動作例

Hello World

送信者

# coding: utf-8import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')

channel.basic_publish(exchange='',
                      routing_key='hello',
                      body='Hello, World!')print 'send msg: Hello World!'connection.close()

受信者

# coding: utf-8import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')def callback(ch, method, properties, body):
    print 'receive msg: %s' % body

channel.basic_consume(callback,
                      queue='hello',
                      no_ack=False)print 'waiting for msg...'channel.start_consuming()

実行結果:

# sender.py 运行2次send msg: Hello World!# receiverwaiting for msg...
receive msg: Hello, World!
receive msg: Hello, World!

コンシューマはメッセージを処理した後、終了せず、引き続き後続の処理を行うことができますメッセージ。

以上がPythonによるRabbitMQ動作グラフィックコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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