RabbitMq中的exchange是什么

在下图中的x便是exchange

224104_tncb_2494265.png

P是生产者,红色为queue

X可以将P的task进行过滤,从而决定将task做如何处理:例如:

(1),舍弃任务

(2),将任务发送到某个task

(3),将任务发送到所有task

exchange有4中类型:directtopicheaders and fanout

这次主要使用fanout

emit_log.py:task将被发送到exchange

# -*- coding: UTF-8 -*-
import pika

if __name__ == '__main__':

    connection = pika.BlockingConnection(pika.ConnectionParameters("localhost"))
    channel = connection.channel()
    channel.exchange_declare(exchange="logs",type="fanout")
    message = "You are awsome!"
    for i in range(0, 100):  # 循环100次发送消息
        channel.basic_publish(exchange="logs", routing_key='', body=message + " " + str(i),)
    print "sending ", message

receive_log.py

# -*- coding: UTF-8 -*-
import pika

__author__ = 'Yue'


def callback(ch, method, properties, body):
    print body


if __name__ == '__main__':
    connection=pika.BlockingConnection(pika.ConnectionParameters("localhost"))
    channel=connection.channel()
    channel.exchange_declare(exchange="logs",type="fanout")
    #随机生成Queue
    result=channel.queue_declare(exclusive=True)
    #获取queue的name
    queue_name=result.method.queue
    print "queue_name",queue_name
    channel.queue_bind(exchange="logs",queue=queue_name)
    channel.basic_consume(callback,queue=queue_name,no_ack=True)
    channel.start_consuming()


转载于:https://my.oschina.net/u/2494265/blog/521922

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值