`

rabbitmq 学习-8- Exchange Queue RoutingKey关系说明

阅读更多

String queue = channel.queueDeclare("test.queue").getQueue();

Rabbitmq Server 会有以下操作:

 

  • 定义了一个queue,名称为test.queue

 

 

  • queue的名称(test.queue)作为routingKey,将当前这个queue binding到一个默认的exchange(名称为空,服务器自动创建的)上

 

如果我们 binding的话

channel.queueBind("test.queue", "test.exchange", "test.routingkey");

上边和默认的Exchange进行的binding还是会存在的

经过同事lucas多次测试发现,以前认为RoutingKey是唯一的或由Exchange和RoutingKey决定一条唯一的由Exchange到Queue的线路是不正确的
测试结果如下:

Exchange Name

Queue Name

Routing Key

 

test.queue     

test.queue

 

test.queue2    

test.queue2

test.exchange  

test.queue     

test.routingkey

test.exchange  

test.queue2    

test.routingkey

test.exchange  

test.queue     

test.routingkey2

test.exchange1

test.queue     

test.routingkey

由结果可以看出,由ExchangeQueueRoutingKey三个才能决定一个从Exchange到Queue的唯一的线路。

画张图,不是很准确

rabbitmq 学习-8- Exchange Queue RoutingKey关系说明 - micro sun - 学无止境

分享到:
评论

相关推荐

    rabbitmq动态绑定exchange,routingKey,queue

    关于rabbitmq的原生api和spring amqp的api的动态绑定exchange,routingKey,queue 说明文地址: http://blog.csdn.net/phantomes/article/details/47284829

    rabbitmq开发规范

    1:rabbitmq的命名规范 2:rabbitmq生产者开发规范 3:rabbitmq消费者开发规范

    rabbitmq exchange详细分析

    RabbitMQ中,所有生产者...任何发送到Direct Exchange的消息都会被转发到RoutingKey中指定的Queue。 1、一般情况可以使用rabbitMQ自带的Exchange:””(该Exchange的名字为空字符串,下文称其为default Exchange)。 2、

    springbootj集成canal+mysql+rabbitmq

    mysql需开启binlog 查看是否开启binlog ... 新增队列:test.queue, 绑定canal.queue, RoutingKey:canal.routing.key canal下载及配置 https://github.com/alibaba/canal/releases/tag/canal-1.1.5 配置文件见附件

    rabbitmq基础知识说明

    Routing Key:路由关键字,exchange根据这个关键字进行消息投递。 producer:消息生产者,就是投递消息的程序。 consumer:消息消费者,就是接受消息的程序。 vhost:虚拟主机,一个broker里可以开设多个vhost,用作...

    rabbitmq消费失败处理

    channel.basic_publish(exchange='', routing_key=routing_key, body='Hello, World!') # 消费消息 def callback(ch, method, properties, body): print("Received message:", body) # 如果消费失败,则将消息...

    pdi-rabbitmq-client:水壶Java类与RabbitMQ进行交互

    amqp.routing_key例如my_routing_key amqp.exchange例如my_exchange amqp.queue例如my_queue 要发布的消息:输入字段消息 receive.java:hava类接收X条消息 receive.ktr:一个样本 发布要求: 要设置的配置变量...

    RabbitMQ高级使用指南.docx

    RabbitMQ 高级使用指南包括使用 RabbitMQ 实现消息队列、使用 Exchange 和 Queue 实现消息路由、使用 Binding 实现消息绑定、使用 Routing Key 实现消息投递等。同时,也包括使用 Vhost 实现虚拟主机、使用 Channel ...

    rabbitmq的常用使用

    当消息被发送到交换机时,根据 Routing Key 将消息路由到对应的队列中。 五、扇形交换机 扇形交换机(Fanout Exchange)是一种特殊的交换机类型,用于将消息广播到所有绑定的队列中。下面是一个使用扇形交换机的...

    stratio-rabbitmq-sink:创建接收水槽的水槽

    routing-key (字符串) :交换的路由密钥 queue (字符串) :一个队列名称,您可以直接使用它而不是交换 virtual-host (字符串) :默认情况下/ basic-properties (布尔值) :用于映射基本AMQP属性 custom-...

    RabbitMQ资料整理

    Routing Key:路由关键字,exchange根据这个关键字进行消息投递。 vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。是个虚拟 概念,可以持有一些Exchange和Message Queue。一个Virtual ...

    RabbitMQ消息中间件面试题(24道).pdf

    问题十四:routing_key 和 binding_key 的最大长度是多少? 问题十五:RabbitMQ 允许发送的 message 最大可达多大? 问题十六:什么情况下 producer 不主动创建 queue 是安全的? 问题十七:“dead letter”queue 的...

    RabbitMQ 50 道面试题及答案.docx

    由Exchange、Queue、RoutingKey三个才能决定一个从Exchange到Queue的唯一的线路。 什么是生产者Producer? 消息生产者,就是投递消息的一方。消息一般包含两个部分:消息体(payload)和标签(Label)。 什么是...

    RabbitMQ 30 道面试题及答案.docx

    RoutingKey:生产者将消息发送给交换器的时候,会指定一个RoutingKey,用来指定这个消息的路由规则,这个RoutingKey需要与交换器类型和绑定键(BindingKey)联合使用才能最终生效。 Binding绑定是什么? Binding:...

    rabbitmq文档整理1

    (2)客户端声明一个exchange,并设置相关属性 (3)客户端声明一个queue,并设置相关属性 (4)客户端使用routing key,在exchange

    node-simple-amqplib:非常容易的 RabbitMQ 消费发布

    简单的amqplib 从/向 RabbitMQ 代理进行简单的消费和发布。 从rabbitMQ队列消费并执行发布操作的声明... AMQP_CONSUME , routingKey : process . env . AMQP_ROUTING_KEY , // If supplied, queue is bound to // this

    横贯八方揭秘RabbitMQ、RocketMQ、Kafka 的核心原理(建议收藏).doc

    1. Direct:消息中的 Routing Key 如果和 Binding 中的 Routing Key 完全一致,Exchange 就会将消息分发到对应的队列中。 2. Fanout:每个发到 Fanout 类型交换机的消息都会分发到所有绑定的队列上去。 3. Topic:...

    RabbitMQ、RocketMQ、Kafka、ActiveMQ消息中间件常见的面试题目

    channel 是实际进行路由工作的实体,即负责按照 routing_key 将 message 投递给 queue。 消息的重复 原因第一类原因消息发送端应用的消息重复发送,有以下几种情况。消息发送端发送消息给消息中间件,消息中间件收到...

    Python队列RabbitMQ 使用方法实例记录

    本文实例讲述了Python队列RabbitMQ 使用方法。...$routingkey = 'key'; //设置你的连接 $conn_args = array('host' => 'localhost', 'port' => '5672', 'login' => 'guest', 'password' => 'guest'); $con

    ci-firewall:用于在防火墙后面与CI防火墙一起运行CI,并收集结果

    它应该有一个queue (durable=true,autodelete=false) ,以及绑定到所述队列的fanout type exchange ,并预留一个topic(read routing key)来发送构建请求。 面向公众的CI系统,该系统最好允许某些秘密(例如am

Global site tag (gtag.js) - Google Analytics