RabbitMq中的exchange是什么

在下图中的x便是exchange

P是生产者,红色为queue

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

(1),舍弃任务

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

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

exchange有4中类型:direct, topic, headers 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()
时间: 2024-10-08 22:45:30

RabbitMq中的exchange是什么的相关文章

RabbitMQ中 exchange、route、queue的关系

从AMQP协议可以看出,MessageQueue.Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件    从应用使用的角度全面的介绍如何利用Rabbit MQ构建消息队列以及使用过程中的注意事项. 1. 声明MessageQueue 在Rabbit MQ中,无论是生产者发送消息还是消费者接受消息,都首先需要声明一个MessageQueue.这就存在一个问题,是生产者声明还是消费者声明呢?要解决这个问题,首先需要明确: a)消费者是无法订阅或者获取不存在的Me

RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较

RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct,topic,header header模式在实际使用中较少,本文只对前三种模式进行比较. 性能排序:fanout > direct >> topic.比例大约为11:10:6 一.Direct Exchange 任何发送到Direct Exchange的消息都会被转发到RouteKey中指定

RabbitMQ三种Exchange模式(fanout,direct,topic)的特性 -摘自网络

RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct,topic,header header模式在实际使用中较少,本文只对前三种模式进行比较. 性能排序:fanout > direct >> topic.比例大约为11:10:6 一.Direct Exchange 任何发送到Direct Exchange的消息都会被转发到RouteKey中指定

RabbitMQ中RPC的实现及其通信机制

RabbitMQ中RPC的实现:客户端发送请求消息,服务端回复响应消息,为了接受响应response,客户端需要发送一个回调队列的地址来接受响应,每条消息在发送的时候会带上一个唯一的correlation_id,相应的服务端处理计算后会将结果返回到对应的correlation_id. RPC调用流程: 当生产者启动时,它会创建一个匿名的独占回调队列,对于一个RPC请求,生产者发送一条具有两个属性的消息:reply_to(回调队列),correlation_id(每个请求的唯一值),请求被发送到r

理解RabbitMQ中的AMQP-0-9-1模型

前提 之前有个打算在学习RabbitMQ之前,把AMQP详细阅读一次,挑出里面的重点内容.后来找了下RabbitMQ的官方文档,发现了有一篇文档专门介绍了RabbitMQ中实现的AMQP模型部分,于是直接基于此文档和个人理解写下这篇文章. AMQP协议 AMQP全称是Advanced Message Queuing Protocol,它是一个(分布式)消息传递协议,使用和符合此协议的客户端能够基于使用和符合此协议的消息传递中间件代理(Broker,也就是经纪人,个人感觉叫代理合口一些)进行通信.

Python实现RabbitMQ中6种消息模型

RabbitMQ与Redis对比 ? RabbitMQ是一种比较流行的消息中间件,之前我一直使用redis作为消息中间件,但是生产环境比较推荐RabbitMQ来替代Redis,所以我去查询了一些RabbitMQ的资料.相比于Redis,RabbitMQ优点很多,比如: 具有消息消费确认机制 队列,消息,都可以选择是否持久化,粒度更小.更灵活. 可以实现负载均衡 RabbitMQ应用场景 异步处理:比如用户注册时的确认邮件.短信等交由rabbitMQ进行异步处理 应用解耦:比如收发消息双方可以使用

易宝典文章——玩转Office 365中的Exchange Online服务 之二 怎样申请一个Office 365企业(试用)账户

玩转Office 365中的Exchange Online服务 之二 怎样申请一个Office 365企业(试用)账户 前面简单介绍了Office 365和Exchange Online.也就是说,可以给客户或公司老板推荐这个产品.但是,需要更有说服力的演示和客户体验才能打动甲方或老板. 对于前期体验和评估来讲,如果直接订阅一个正式版,会带来过高的评估成本,即使是订阅最廉价的版本,往往在企业采购前期评估中也会是困难重重,很多时候会直接导致项目的夭折. 幸运的是,对于Office 365来讲,可以

易宝典文章——玩转Office 365中的Exchange Online服务 之五 怎样利用PSl连接Exchange Online实现管理

前面已经对Office 365的全局管理做了简单介绍,接下来的内容将进入本系列的主题--ExchangeOnline的介绍.通过微软提供的Office 365 Web控制页面的确可以管理Exchange Online的日常维护,但是需要进阶管理,则需要用到PowerShell.和Exchange Server相同,Exchange Online的很多操作是需要通过PowerShell来实现的.因此,首先介绍如何将PowerShell连接的Office 365中的Exchange Online.

易宝典文章——玩转Office 365中的Exchange Online服务 之六 了解Exchange Online对于邮箱使用的限制

所有用于Office 365中Exchange Online管理的基本信息和工具均已经准备好了.可能现在有点蠢蠢欲动的对Exchange Online进行操作了.但是,建议还是再花点时间来了解一下ExchangeOnline对于邮箱使用的限制,以免造成不必要的时间浪费和错误抉择.比如,想为用户分配100GB容量的邮箱,这种需求在目前的Exchange Online中是无法实现的,因为现有所有级别的订阅都只为用户提供最大50GB容量的邮箱. 接下来,将利用Exchange Server 2013作