python 操作RabbitMQ (二十六)

RabbitMQ

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

RabbitMQ安装

`安装配置epel源``   ``$ rpm ``-``ivh http:``/``/``dl.fedoraproject.org``/``pub``/``epel``/``6``/``i386``/``epel``-``release``-``6``-``8.noarch``.rpm` `安装erlang``   ``$ yum ``-``y install erlang` `安装RabbitMQ``   ``$ yum ``-``y install rabbitmq``-``server`

注意:service rabbitmq-server start/stop

安装API

`pip install pika``or``easy_install pika``or``源码` `https:``/``/``pypi.python.org``/``pypi``/``pika`

使用API操作RabbitMQ

基于Queue实现生产者消费者模型

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import Queue
import threading


message = Queue.Queue(10)


def producer(i):
    while True:
        message.put(i)


def consumer(i):
    while True:
        msg = message.get()


for i in range(12):
    t = threading.Thread(target=producer, args=(i,))
    t.start()

for i in range(10):
    t = threading.Thread(target=consumer, args=(i,))
    t.start()

对于RabbitMQ来说,生产和消费不再针对内存里的一个Queue对象,而是某台服务器上的RabbitMQ Server实现的消息队列。

`#!/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!'"``)``conn
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值