ubuntu安装rabbitmq和python的使用实现

安装rabbitmq

先来安装下rabbitmq,在ubuntu 12.04下可以直接通过apt-get安装:

sudo apt-get install rabbitmq-server

安装好以后RabbitMQ的服务就启动了,那么接下来我们就可以用Python来实现发送和接收的过程了,在编写代码之前,我们先看下基本的原理:

                                                                          

其中P是Producer,也就是生产者的意思或称作消息的发送者,C是Consumer,也就是消费者,消息的接收方,Hello是队列的名字。根据上图显示,我们需要一个发送者和一个接收者,那就需要编写send.py和receive.py


python使用rabbitmq服务,可以使用现成的类库pika、txAMQP或者py-amqplib,这里我们选择官方指导中的pika

安装pika

安装pika可以使用pip来进行安装,pip是python的软件管理包,如果没有安装,可以通过apt-get安装

sudo apt-get install python-pip git-core
接下来安装pika:

sudo pip install pika


send.py

基本过程:

1.连接RabbitMQ服务

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

注:当前的实验环境在本机,所以连接地址是localhost,根据实际需要可以更改实际的IP地址


2.声明消息队列

channel.queue_declare(queue='hello')

3.发送消息到队列

channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
注:发送消息到上面声明的hello队列,其中exchange表示交换器,能精确指定消息应该发送到哪个队列,routing_key设置为队列的名称,body就是发送的内容

4.关闭连接

connection.close()



完整代码如下:

#!/usr/bin/env python
import pika

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

channel.queue_declare(queue='hello')

channel.basic_publish(exchange='',routing_key='hello',body='Hello World!')
print " [x] Sent 'Hello World!'"
connection.close()

先来执行下这个程序,执行成功的话,rabbitmqctl应该成功增加了hello队列,并且队列里应该有一条信息,用rabbitmqctl命令来查看下:

rabbitmqctl list_queues



receive.py

和send.py的前面两个步骤一样,都是要先连接服务器,然后声明消息的队列,这里就不再贴同样代码了。

接收消息更为复杂一些,需要定义一个回调函数来处理,这边的回调函数就是将信息打印出来。

def callback(ch, method, properties, body):
    print "Received %r" % (body,)

完整代码:

import pika

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

channel.queue_declare(queue='hello')

print ' [*] Waiting for messages. To exit press CTRL+C'

def callback(ch, method, properties, body):
    print " [x] Received %r" % (body,)

channel.basic_consume(callback,queue='hello',no_ack=True)

channel.start_consuming()


小试牛刀:

接下来我们就可以运行两端程序来检测是否成功了:



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值