ubuntu安装rabbitmq和python的使用实现
2018-01-03 16:38
423 查看
在安装openstack的时候,需要安装rabbitmq,百度了下rabbitmq,发现是用erlang写的,基于对erlang的好感,于是就想了解下rabbitmq。
rabbitmq中文翻译的话,主要还是mq字母上:Message Queue,即消息队列的意思。前面还有个rabbit单词,就是兔子的意思,和python语言叫python一样,老外还是蛮幽默的。rabbitmq服务类似于mysql、apache服务,只是提供的功能不一样。rabbimq是用来提供发送消息的服务,可以用在不同的应用程序之间进行通信。
安装rabbitmq
先来安装下rabbitmq,在ubuntu 12.04下可以直接通过apt-get安装:
安装好后,rabbitmq服务就已经启动好了。接下来看下python编写Hello World!的实例。实例的内容就是从send.py发送“Hello World!”到rabbitmq,receive.py从rabbitmq接收send.py发送的信息。
rabbitmq消息发送流程(来源rabbitmq官网)
其中P表示produce,生产者的意思,也可以称为发送者,实例中表现为send.py;C表示consumer,消费者的意思,也可以称为接收者,实例中表现为receive.py;中间红色的表示队列的意思,实例中表现为hello队列。
python使用rabbitmq服务,可以使用现成的类库pika、txAMQP或者py-amqplib,这里选择了pika。
安装pika
安装pika可以使用pip来进行安装,pip是python的软件管理包,如果没有安装,可以通过apt-get安装
通过pip安装pika:
send.py代码
连接到rabbitmq服务器,因为是在本地测试,所以就用localhost就可以了。
声明消息队列,消息将在这个队列中进行传递。如果将消息发送到不存在的队列,rabbitmq将会自动清除这些消息。
发送消息到上面声明的hello队列,其中exchange表示交换器,能精确指定消息应该发送到哪个队列,routing_key设置为队列的名称,body就是发送的内容,具体发送细节暂时先不关注。
关闭连接
完整代码
先来执行下这个程序,执行成功的话,rabbitmqctl应该成功增加了hello队列,并且队列里应该有一条信息,用rabbitmqctl命令来查看下
在笔者的电脑上输出如下信息:
rabbitmq查看队列信息
确实有一个hello队列,并且队列里有一条信息。接下来用receive.py来获取队列里的信息。
receive.py代码
和send.py的前面两个步骤一样,都是要先连接服务器,然后声明消息的队列,这里就不再贴同样代码了。
接收消息更为复杂一些,需要定义一个回调函数来处理,这边的回调函数就是将信息打印出来。
告诉rabbitmq使用callback来接收信息
开始接收信息,并进入阻塞状态,队列里有信息才会调用callback进行处理。按ctrl+c退出。
完整代码
执行程序,就能够接收到队列hello里的消息Hello World!,然后打印在屏幕上。换一个终端,再次执行send.py,可以看到receive.py这边会再次接收到信息。
总结
上面的实例非常简单了,在官网上还有更多实例和原理说明,笔者也在学习其中的奥妙,欢迎大家来信交流。
rabbitmq的官方站点:http://www.rabbitmq.com
python实例来源:http://www.rabbitmq.com/tutorials/tutorial-one-python.html
rabbitmq中文翻译的话,主要还是mq字母上:Message Queue,即消息队列的意思。前面还有个rabbit单词,就是兔子的意思,和python语言叫python一样,老外还是蛮幽默的。rabbitmq服务类似于mysql、apache服务,只是提供的功能不一样。rabbimq是用来提供发送消息的服务,可以用在不同的应用程序之间进行通信。
安装rabbitmq
先来安装下rabbitmq,在ubuntu 12.04下可以直接通过apt-get安装:
sudo apt-get install rabbitmq-server
安装好后,rabbitmq服务就已经启动好了。接下来看下python编写Hello World!的实例。实例的内容就是从send.py发送“Hello World!”到rabbitmq,receive.py从rabbitmq接收send.py发送的信息。
rabbitmq消息发送流程(来源rabbitmq官网)
其中P表示produce,生产者的意思,也可以称为发送者,实例中表现为send.py;C表示consumer,消费者的意思,也可以称为接收者,实例中表现为receive.py;中间红色的表示队列的意思,实例中表现为hello队列。
python使用rabbitmq服务,可以使用现成的类库pika、txAMQP或者py-amqplib,这里选择了pika。
安装pika
安装pika可以使用pip来进行安装,pip是python的软件管理包,如果没有安装,可以通过apt-get安装
sudo apt-get install python-pip
通过pip安装pika:
sudo pip install pika
send.py代码
连接到rabbitmq服务器,因为是在本地测试,所以就用localhost就可以了。
rabbitmqctl list_queues
在笔者的电脑上输出如下信息:
rabbitmq查看队列信息
确实有一个hello队列,并且队列里有一条信息。接下来用receive.py来获取队列里的信息。
receive.py代码
和send.py的前面两个步骤一样,都是要先连接服务器,然后声明消息的队列,这里就不再贴同样代码了。
接收消息更为复杂一些,需要定义一个回调函数来处理,这边的回调函数就是将信息打印出来。
总结
上面的实例非常简单了,在官网上还有更多实例和原理说明,笔者也在学习其中的奥妙,欢迎大家来信交流。
rabbitmq的官方站点:http://www.rabbitmq.com
python实例来源:http://www.rabbitmq.com/tutorials/tutorial-one-python.html
相关文章推荐
- ubuntu安装rabbitmq和python的使用实现
- ubuntu安装rabbitmq和python的使用实现
- ubuntu安装rabbitmq和python的使用实现
- ubuntu安装rabbitmq和python的使用实现
- ubuntu安装rabbitmq和python的使用实现 (1)
- (转载)Ubuntu sendmail安装和使用具体实现
- 使用 Python 实现跨平台的安装程序
- Ubuntu下安装和使用lrzsz,实现串口传输文件&&minicom
- Ubuntu 14.04 下安装使用Python rq模块
- 在Ubuntu系统下安装使用Python的GUI工具wxPython
- Ubuntu安装MongoDB,并通过pip安装python pymongo驱动、简单使用
- 在Ubuntu系统下安装使用Python的GUI工具wxPython
- ubuntu linux主机中使用Virtualbox安装虚拟机,让宿主机和虚拟机之间实现数据共享
- Ubuntu14.04安装pycharm用于Python开发环境部署,并且支持pycharm使用中文输入
- Ubuntu下同时安装了python2版本和python3版本如何使用pip分别为P2和P3安装不同类库
- python使用rabbitmq实现网络爬虫示例
- Ubuntu10.10下安装和使用lrzsz,实现串口传输文件&&minicom
- python使用rabbitmq实现网络爬虫示例
- ubuntu在使用pip安装python模块时的狗血错误
- Ubuntu下安装和使用lrzsz,实现串口传输文件&&minicom