博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[RabbitMQ]08_RabbitMQ学习之exchange总结
阅读量:6248 次
发布时间:2019-06-22

本文共 1887 字,大约阅读时间需要 6 分钟。

hot3.png

前面介绍了几类exchange的作用,这个总结一下: 

direct消息会被推送至绑定键(binding key)和消息发布附带的选择键(routing key)完全匹配的队列。默认有”AMQP default”,它用一个空字符串表示,它是direct类型的exchange,任何发往这个exchange的消息都会被路由到routing key的名字对应的队列上,如果没有对应的队列,则消息会被丢弃。

声明exchange 

channel.basicPublish(exchange, routingKey, props, body); 
发布消息 
channel.basicPublish(exchange, routingKey, null, message .getBytes()); 
消费端绑定routing key 
channel.queueBind(queue, exchange, routingKey) 
接收消息 
channel.basicConsume(queue, true, consumer);

fanout一个发送到exchange的消息都会被转发到与该exchange绑定的所有队列上。

声明exchange 

channel.exchangeDeclare(exchange, “fanout”); 
发布消息 
channel.basicPublish(exchange, queue, null, message .getBytes()); 
消费端绑定 
channel.queueBind(queue, exchange, “”); 
接收消费 
channel.basicConsume(queue, true, consumer);

topic一个附带特殊的选择键将会被转发到绑定键与之匹配的队列中。需要注意的是:关于绑定键有两种特殊的情况。 

1。* 可以匹配一个标识符。 
2。# 可以匹配0个或多个标识符。

声明exchange 

channel.exchangeDeclare(exchange, “topic”); 
发布消息 
channel.basicPublish(exchange, routingKey, null, msg 
消费端绑定 
channel.queueBind(queue, exchange, “kernel.*”); 
接收消息 
channel.basicConsume(queue, true, consumer);

Headers发送者在发送的时候定义一些键值对,接收者也可以再绑定时候传入一些键值对,两者匹配的话,则对应的队列就可以收到消息。匹配有两种方式all和any这两种方式是在接收端必须要用键值”x-mactch”来定义。all代表定义的多个键值对都要满足,而any则代码只要满足一个就可以了。

声明exchange 

channel.exchangeDeclare(exchange,ExchangeTypes.HEADERS,false,true,null); 
发布消息 
Map headers = new Hashtable(); 
headers.put(“aaa”, “01234”); 
Builder properties = new BasicProperties.Builder(); 
properties.headers(headers); 
channel.basicPublish(exchange,”“,properties.build(),message.getBytes()); 
消费端绑定 
channel.queueDeclare(queue,false, false, true,null); 
Map headers = new Hashtable(); 
headers.put(“x-match”, “any”);//all any 
headers.put(“aaa”, “01234”); 
headers.put(“bbb”, “56789”); 
channel.queueBind(queue, exchange,”“, headers); 
接收消息 
channel.basicConsume(QUEUE_NAME, true, consumer);

一个消息先有exchange通过绑定关系,判断要投递到哪个消费队列,根据exchange类型的投递的判断逻辑也不同。 

引用图片

转载于:https://my.oschina.net/morpheusWB/blog/1528253

你可能感兴趣的文章
快速排序
查看>>
排版与缩写
查看>>
C#使用xpath查找xml节点信息
查看>>
简单的语句统计所有用户表尺寸大小
查看>>
作业四:个人项目---小学四则运算
查看>>
漂亮的按钮样式-button
查看>>
post请求方式的翻页爬取内容及思考
查看>>
VC++ MFC如何生成一个可串行化的类
查看>>
php 变量引用,函数引用
查看>>
NET生成缩略图
查看>>
微软企业库5.0 学习之路——第二步、使用VS2010+Data Access模块建立多数据库项目...
查看>>
渗流稳定性分析(MATLAB实现)
查看>>
POJ2253 Frogger(最短路径)
查看>>
动画总结?
查看>>
HDU 2044 一只小蜜蜂 *
查看>>
Java 斜杠 与 反斜杠
查看>>
垂直居中
查看>>
idea下maven项目,样式css、js更新后,页面不显示更新内容
查看>>
bzoj 1001 平面图转对偶图 最短路求图最小割
查看>>
php 记住密码自动登录
查看>>