RabbitMQ的安装和使用Python连接RabbitMQ

绪论



这里的环境使用的是Mac OS X系统,所有的配置和使用都是基于Mac OS X 和Python 2.7 以及对应的pika库的。

RabbitMQ的安装和配置


安装部分

#brew install rabbitmq

配置和启动

#sudo brew services start rabbitmq
#sudo rabbitmqctl add_user admin admin                                   "创建用户(username  password)"
#sudo rabbitmqctl set_user_tags admin administrator                  "配置用户为超级管理员"
#sudo rabbitmqctl  set_permissions  -p  ‘/‘  admin ‘.‘ ‘.‘ ‘.‘            " 配置权限"
#sudo brew services restart rabbitmq                             

Python 与 pika


安装pika

#sudo pip install pika

Python与RabbitMQ的配合(基础)

# -*- coding:utf-8 -*-

import pika

class RabbitMQ(object):
    """一个简单的RabbitMQ的库,为了学习"""
    def __init__(self,host,port=5672,username=None,password=None):

        if host == None:
            raise Exception("Host is None")
        if username != None and password != None:
            try:
                self.Credentials = pika.PlainCredentials(username,password)
                self.ConnectionKeys = pika.ConnectionParameters(host,port,‘/‘,self.Credentials)
            except Exception:
                raise
        else:
            self.ConnectionKeys = None
    def _connection(self):
        try:
            if self.ConnectionKeys == None:
                self.connection = pika.BlockingConnection()
            else:
                self.connection = pika.BlockingConnection(self.ConnectionKeys)
        except Exception:
            raise
    def _channel(self):
        self.channel = self.connection.channel()
    def _callback(channel,method,properties,body):
        return body
    def connect(self):
        self._connection()
        self._channel()
    def create_queque(slef,flag,durableflag=False):
        try:
            self.channel.queue_declare(queue=flag,durable=durableflag)
        except Exception:
            raise
    def product(self,flag,content,exchange=‘‘):
        try:
            self.channel.basic_publish(exchange=‘‘,routing_key=flag,body=content)
        except Exception:
            raise
    def consume(slef,flag,ackflag):
        try:
            self.channel.basic_consume(self._callback,queue=flag,no_ack=ackflag)
        except Exception:
            raise
    def close(self):
        try:
            self.connection.close()
        except Exception:
            raise

原文地址:https://www.cnblogs.com/KevinGeorge/p/9072632.html

时间: 2024-08-04 09:57:59

RabbitMQ的安装和使用Python连接RabbitMQ的相关文章

python中RabbitMQ的使用(安装和简单教程)

1,简介 RabbitMQ(Rabbit Message Queue)是流行的开源消息队列系统,用erlang语言开发. 1.1关键词说明: Broker:消息队列服务器实体.Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列.Queue:消息队列载体,每个消息都会被投入到一个或多个队列.Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来.Routing Key:路由关键字,exchange根据这个关键字进行消息投递.vhost:虚拟主机,一个b

使用php-amqplib连接rabbitMQ 学习笔记及总结

1.使用composer安装php-amqplib 在你的项目中添加一个 composer.json文件: { "require": { "php-amqplib/php-amqplib": "2.6.*" } } 只要你已经安装Composer功能,你可以运行以下: $ composer install 已经存在的项目则执行 $ composer update这时在verdor目录就已经下载完毕 具体可以参考官方文档:https://githu

rabbitmq的安装和命令介绍及python程序模拟生产者和消费者

[介绍] RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. RabbitMQ是流行的开源消息队列系统,用erlang语言开发 RabbitMQ是AMQP(高级消息队列协议)的标准实现 官网:http://www.rabbitmq.com/ [安装] 方式:yum/rpm 系统环境 [[email protected]_server scripts]# ifconfig | sed -n 's#.*inet addr:

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc

Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memcached安装和基本使用 Memcached安装: wget http://memcached.org/latest

python - 操作RabbitMQ

python - 操作RabbitMQ 介绍 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议.MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过

文成小盆友python-num12 Redis发布与订阅补充,python操作rabbitMQ

本篇主要内容: redis发布与订阅补充 python操作rabbitMQ 一,redis 发布与订阅补充 如下一个简单的监控模型,通过这个模式所有的收听者都能收听到一份数据. 用代码来实现一个redis的订阅者何消费者. 定义一个类: import redis class Redis_helper(): def __init__(self): self.__conn = redis.Redis(host='192.168.11.87') #创建一个连接 def pub(self, mes, c

# 进程/线程/协程 # IO:同步/异步/阻塞/非阻塞 # greenlet gevent # 事件驱动与异步IO # Select\Poll\Epoll异步IO 以及selectors模块 # Python队列/RabbitMQ队列

1 # 进程/线程/协程 2 # IO:同步/异步/阻塞/非阻塞 3 # greenlet gevent 4 # 事件驱动与异步IO 5 # Select\Poll\Epoll异步IO 以及selectors模块 6 # Python队列/RabbitMQ队列 7 8 ############################################################################################## 9 1.什么是进程?进程和程序之间有什么

RabbitMQ 的安装与工作模式

RabbitMQ 概念: fanout:不处理路由键,转发到所有绑定的队列上 direct:处理路由键,必须完全匹配,即路由键字符串相同才会转发 topic:路由键模式匹配,此时队列需要绑定要一个模式上.符号"#"匹配一个或多个词,符号"*"匹配不多不少一个词.因此"audit.#"能够匹配到"audit.irs.corporate",但是"audit.*" 只会匹配到"audit.irs&quo