Python中RabbitMQ的操作圖文程式碼詳解

黄舟
發布: 2017-05-07 10:47:01
原創
1381 人瀏覽過


知識準備

RabbitMQ

RabbitMQ是一個在AMQP基礎上完整的,可重複使用的企業訊息系統。

MQ

MQ全稱為Message Queue, 訊息佇列(MQ)是一種應用程式對應用程式的通訊方法。
Python中RabbitMQ的操作圖文程式碼詳解
訊息佇列使用發布訂-閱模式工作。訊息發送者是訊息來源,在對訊息進行處理後將訊息發送至分散式訊息佇列,訊息接受者從分散式訊息佇列取得該訊息後繼續處理。可以看到,訊息發送者和訊息接受者之間沒有直接耦合,訊息發送者將訊息發送至分散式訊息佇列即結束對訊息的處理,而訊息接受者只需要從分散式訊息佇列取得訊息後進行處理,不需要知道該訊息從何而來。
透過訊息佇列通信,讓A,B兩個服務指間保持低耦合,實現業務的靈活拓展。

pika

pika是RabbitMQ團隊所寫的官方Python AMQP函式庫。

安裝啟動

$ brew install rabbitmq$ usr/local/sbin/rabbitmq-server
登入後複製

安裝pika

pip install pika
登入後複製

操作實例

Hello World

sender

# 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()
登入後複製

#receiver

# 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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!