1,簡介html
pip install pika
3.示例測試python
實例的內容就是從send.py發送消息到rabbitmq,receive.py從rabbitmq接收send.py發送的信息。windows
P表示produce,生產者的意思,也能夠稱爲發送者,實例中表現爲send.py;服務器
C表示consumer,消費者的意思,也能夠稱爲接收者,實例中表現爲receive.py;dom
中間紅色的表示隊列的意思,實例中表現爲hello隊列。測試
send.pyspa
1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 4 import pika 5 import random 6 7 # 新建鏈接,rabbitmq安裝在本地則hostname爲'localhost' 8 hostname = '192.168.1.133' 9 parameters = pika.ConnectionParameters(hostname) 10 connection = pika.BlockingConnection(parameters) 11 12 # 建立通道 13 channel = connection.channel() 14 # 聲明一個隊列,生產者和消費者都要聲明一個相同的隊列,用來防止萬一某一方掛了,另外一方能正常運行 15 channel.queue_declare(queue='hello') 16 17 number = random.randint(1, 1000) 18 body = 'hello world:%s' % number 19 # 交換機; 隊列名,寫明將消息發往哪一個隊列; 消息內容 20 # routing_key在使用匿名交換機的時候才須要指定,表示發送到哪一個隊列 21 channel.basic_publish(exchange='', routing_key='hello', body=body) 22 print " [x] Sent %s" % body 23 connection.close()
receive.py命令行
1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 4 import pika 5 6 hostname = '192.168.1.133' 7 parameters = pika.ConnectionParameters(hostname) 8 connection = pika.BlockingConnection(parameters) 9 10 # 建立通道 11 channel = connection.channel() 12 channel.queue_declare(queue='hello') 13 14 15 def callback(ch, method, properties, body): 16 print " [x] Received %r" % (body,) 17 18 # 告訴rabbitmq使用callback來接收信息 19 channel.basic_consume(callback, queue='hello', no_ack=True) 20 21 # 開始接收信息,並進入阻塞狀態,隊列裏有信息纔會調用callback進行處理,按ctrl+c退出 22 print ' [*] Waiting for messages. To exit press CTRL+C' 23 channel.start_consuming()
咱們先運行send.py發送消息:code
再運行receive.py接收消息:htm