RabbitMq六种使用模式(3)_订阅发布模式
来源:互联网 发布:nuity3d 用lua封装java 编辑:程序博客网 时间:2024/05/21 04:21
之前的例子都是讲消息直接发送给指定的队列;现在需要发送给多个队列,订阅/发布模式
生产者不再将消息直接发往队列,而是发往exchange,然后exchange再发送给在该exchange订阅的队列;
exchange需要知道如何对接收到的消息进行转发
exchange有四种类型:direct, topic, headers and fanout
一:fanout类型
将消息发给所有在exchange注册的队列
channel.exchangeDeclare("logs", "fanout");//1:声明一个fanout的exchange channel.queueBind(queueName, "logs", "");//将队列在exchange注册 channel.basicPublish("logs", "", null, message.getBytes());//发送消息
二:direct类型
fanout类型的exchange可以将消息发送给在exchange上注册的所有的队列;
队列注册到direct类型的exchange时增加了route_key,每一个消息都有一个key,消息的key与队列的route_key一致时才会发往该队列;
channel.exchangeDeclare(EXCHANGE_NAME, "direct");channel.basicPublish(EXCHANGE_NAME, "key", null, message.getBytes());channel.queueBind(queueName, EXCHANGE_NAME, "key");
三:topic类型
direct类型中有一个缺点是:必须要消息的key和订阅的route_key完全一致才会发送到相应队列;topic类型增加了相当于模糊匹配的功能;
*代表一个字符
#代表0个或多个字符
channel.exchangeDeclare(EXCHANGE_NAME, "topic");channel.basicPublish(EXCHANGE_NAME, "key.t", null, message.getBytes());channel.queueBind(queueName, EXCHANGE_NAME, "key.*");
0 0
- RabbitMq六种使用模式(3)_订阅发布模式
- RabbitMq六种使用模式(2)_多个消费者
- RabbitMQ消息分发模式----"Publish/Subscribe"发布/订阅模式
- RabbitMQ下的生产消费者模式与订阅发布模式
- (四) RabbitMQ消息分发模式----"Publish/Subscribe"发布/订阅模式
- RabbitMQ下的生产消费者模式与订阅发布模式
- RabbitMQ消息分发模式----"Publish/Subscribe"发布/订阅模式
- RabbitMq六种使用模式(1)_直接指定消息接收队列
- RabbitMQ五种消息队列学习(四)--发布订阅模式
- 使用Autobahn的订阅/发布模式
- activeMQ发布订阅者模式使用
- 发布-订阅消息模式
- 订阅发布模式
- jquery订阅发布模式
- 发布-订阅消息模式
- 发布-订阅消息模式
- Redis发布订阅模式
- 发布-订阅模式
- 黑马程序员——单例模式
- C语言深度剖析自测题8解析
- 《笨方法学Python》学习笔记
- RabbitMq六种使用模式(2)_多个消费者
- Hadoop2.2.0在Ubuntu编译失败解决方法
- RabbitMq六种使用模式(3)_订阅发布模式
- IPython notebook在浏览器中显示不正常的问题及解决方法
- Linux定时执行脚本
- 使用struts2的标签s:if获取url中的参数值,并与字符串常量进行比较
- Java静态变量和静态方法
- Android环境搭建
- 黑马程序员——抽象类、接口和内部类
- 解决Failure executing javac, but could not parse the error
- jsp简单练习-简单的下拉表单