Python RabbitMQ fanout

#########################消费者################################
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author: Changhua Gong
import pika
‘‘‘
fanout模式:类似收音机的广播模式,
接收者(消费者)在的话,则接收;接收者不在的话,消息错过了就没有了。
‘‘‘
connection = pika.BlockingConnection(pika.ConnectionParameters(
    host=‘localhost‘))
channel = connection.channel()
channel.exchange_declare(exchange=‘logs‘,  # 和生产者对绑定
                         type=‘fanout‘)
# 声明对应queue,生产者不需声明
# 不指定queue名字,rabbit会随机分配一个名字,exclusive=True会在使用此queue的消费者断开后,自动将queue删除
result = channel.queue_declare(exclusive=True)
queue_name = result.method.queue
channel.queue_bind(exchange=‘logs‘,
                   queue=queue_name)
print(‘ [*] Waiting for logs. To exit press CTRL+C‘)
def callback(ch, method, properties, body):
    print(" [x] %r" % body)
channel.basic_consume(callback,
                      queue=queue_name,
                      no_ack=True)
channel.start_consuming()
#########################生产者################################
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author: Changhua Gong
import pika
import sys
‘‘‘
fanout: 所有bind到此exchange的queue都可以接收消息
‘‘‘
connection = pika.BlockingConnection(pika.ConnectionParameters(
    host=‘localhost‘))
channel = connection.channel()
# 生产者不需要声明queue
channel.exchange_declare(exchange=‘logs‘,  # 指定exchanger的名字,随意
                         type=‘fanout‘)  # 类型需指定fanout
message = ‘ ‘.join(sys.argv[1:]) or "info: Hello World!"  # 默认输出参数,否则。。。
channel.basic_publish(exchange=‘logs‘,
                      routing_key=‘‘, # 不需指定具体的routing_key,但是要写
                      body=message)
print(" [x] Sent %r" % message)
connection.close()
时间: 2024-11-06 22:33:37

Python RabbitMQ fanout的相关文章

python RabbitMQ队列使用(入门篇)

---恢复内容开始--- python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种queue都是只能在同一个进程下的线程间或者父进程与子进程之间进行队列通讯,并不能进行程序与程序之间的信息交换,这时候我们就需要一个中间件,来实现程序之间的通讯. RabbitMQ MQ并不是python内置的模块,而是一个需要你额外安装(ubunto可直接apt-get其余请自行百度.)的程序,安装完毕

python RabbitMQ队列/redis

RabbitMQ队列 安装 http://www.rabbitmq.com/install-standalone-mac.html 安装python rabbitMQ module 1 2 3 4 5 6 7 pip install pika or easy_install pika or 源码   https://pypi.python.org/pypi/pika 实现最简单的队列通信 produce 1 import pika 2 connection = pika.BlockingConn

spring amqp rabbitmq fanout配置

基于spring amqp rabbitmq fanout配置如下: 发布端 <rabbit:connection-factory id="rabbitConnectionFactory" username="guest" password="guest" host="localhost" port="5672"/> <rabbit:template id="amqpTempla

Python—RabbitMQ

RabbitMQ RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统 安装 因为RabbitMQ由erlang实现,先安装erlang #安装配置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 #启动/关闭

python+rabbitMQ抓取某婚恋网站用户数据

"总是向你索取却不曾说谢谢你----",在博客园和知乎上面吸收了很多知识,以后也会在这里成长,这里挺好,谢谢博客园和知乎,所以今天也把自己在项目期间做的东西分享一下,希望对朋友们有所帮助.... 废话少说,let's go----! 需求: 项目需要做一个婚恋网站,主要技术有nginx,服务器集群,redis缓存,mysql主从复制,amoeba读写分离等等,我主要用rabbitMQ+python完成并实现了数据爬取工作(数据库写入及图片下载保存),速度的话公司的电脑爬的(i5+16g

springboot使用rabbitmq fanout路由模式

fanout模式,生产者发送的消息到Exchange,Exchange同时往多个queue发送,多个消费者同时收到各自监听的queue消息 1.安装rabbitmq,pom.xml添加依赖,见之前博文有操作流程 2.添加配置文件,声明两个queue,一个fanoutExchange,然后将queue于Exchange进行绑定 import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.Bin

Python rabbitmq

一.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 二.启动rabbitmq /etc/init.d/rabbitmq-server start [[email pro

Python RabbitMQ 消息队列

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

python+rabbitmq实现分布式

#master # -*- coding: utf-8 -*-import sys#reload(sys)sys.setdefaultencoding("utf-8") import pymongo import random, time, Queuefrom multiprocessing import freeze_supportfrom multiprocessing.managers import BaseManager global connetionconnetion=py