RabbitMq学习笔记(四)—— 消息路由(Routing)
来源:互联网 发布:nginx代理apache 400 编辑:程序博客网 时间:2024/06/04 17:48
//声明直连交换器channel.exchangeDeclare(EXCHANGE_NAME, "direct"); // 获取匿名队列名称 String queueName = channel.queueDeclare().getQueue();根据路由关键字进行多重绑定 for(String severity :routingKeys){ channel.queueBind(queueName, EXCHANGE_NAME, severity); } //消费数据Consumer consumer = new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String message = new String(body, "UTF-8"); System.out.println(" [x] Received '" + envelope.getRoutingKey() + "':'" + message + "'"); } }; channel.basicConsume(queueName, true, consumer);
直连类型交换器
上一章的例子是通过分发【fanout】类型的交换器【logs】广播日志信息,现在我们将日志分debug、info、warn、error这几种基本的级别,实际在生产环境中,避免磁盘空间浪费,应用只会将error级别的日志打印出来。而分发【fanout】类型的交换器会将所有基本的日志都发送出来,如果我们想只接收某一级别的日志信息,就需要使用直连【direct】类型的交换器了, 下面的图中,队列1通过ERROR这个routingkey绑定到E交换器,队列2通过WARN和INFO绑定到E交换器,E交换器的类型是直连【direct】的,如果生产者【P】发出ERROR的日志,只会有队列1会收到,如果生产者【P】发出INFO和WARN的日志,只有队列2会收到,如果生产者【P】发出DEBUG级别的日志,队列1和队列2都会忽略它。
多重绑定
我们允许多个队列以相同的路由关键字绑定到同一个交换器中,可以看到,交换器虽然是直连类型,但是绑定后的效果却跟分发类型的交换器类似,相同的是队列1和队列2都会收到同一条来自交换器的消息。
他们的区别:分发模式下,队列1、队列2会收到所有级别(除ERROR级别以外)的消息,而直连模式下,他们仅仅只会收到ERROR关键字类型的消息。
0 0
- RabbitMq学习笔记(四)—— 消息路由(Routing)
- rabbitMQ消息服务器学习笔记(java)4消息路由routing
- RabbitMQ 学习笔记(四):Routing
- RabbitMQ (消息队列)专题学习05 routing(路由)
- RabbitMQ 基础教程 Routing(消息路由)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- RabbitMQ (四) 路由选择 (Routing)
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- 简单却又复杂的FizzBuzz面试编程问题
- 344. Reverse String
- TensorFlow 制作自己的TFRecord数据集
- hibernate的ID生成器
- RabbitMq学习笔记(四)—— 消息路由(Routing)
- Android实现zip下载并解压
- js 数组去重的一些方法总结
- Openstack Ocata Nova [placement]
- vi编辑器
- java中有关package的作用
- NUMA、SMP架构下的CPU性能调优:姻亲关系、进程绑定与中断
- [编程题]在一个N*N的数组中寻找所有横,竖,左上到右下,右上到左下,四种方向比较
- PreparedStatement进行数据库增删改查