RabbitMQ入门(五)-Topics(主题)
首先可以去官方看看第五章节讲的一些内容:https://www.rabbitmq.com/tutorials/tutorial-five-java.html
用TOPIC模式
- *可以代替一个单词
- #可以替换零个或多个单词。
1.生产者
package com.baidu.RabbitMQ.mq04;import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;public class OneProducer {private static final String Exchange_Name="rabbit:mq04:exchange:e01";public static void main(String[] args) {try {ConnectionFactory factory = new ConnectionFactory();factory.setHost("127.0.0.1");Connection connection = factory.newConnection();Channel channel = connection.createChannel();String message = "topicExchange-publish我的消息";//队列one收的到 ,队列two收不到channel.basicPublish(Exchange_Name, "rabbit:mq04:routing:key:r.orange", null, message.getBytes("UTF-8"));//队列two收的到 ,队列one收不到channel.basicPublish(Exchange_Name, "rabbit:mq04:routing:key:r.orange.apple", null, message.getBytes("UTF-8"));System.out.println("生产者发送消息成功---> ");channel.close();connection.close();} catch (Exception e) {e.printStackTrace();}}
}
2.消费者one
package com.baidu.RabbitMQ.mq04;import java.io.IOException;import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Consumer;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;public class MultiConsumerOne {private static final String Exchange_Name="rabbit:mq04:exchange:e01";private static final String Queue_Name_01="rabbit:mq04:queue:q01";private static final String Routing_Key_01="rabbit:mq04:routing:key:r.*";public static void main(String[] args) {try {ConnectionFactory factory = new ConnectionFactory();factory.setHost("127.0.0.1");Connection connection = factory.newConnection();Channel channel = connection.createChannel();channel.exchangeDeclare(Exchange_Name, BuiltinExchangeType.TOPIC);channel.queueDeclare(Queue_Name_01, true, false, false, null);channel.queueBind(Queue_Name_01, Exchange_Name, Routing_Key_01);Consumer consumer = new DefaultConsumer(channel) {@Overridepublic void handleDelivery(String consumerTag, Envelope envelope,AMQP.BasicProperties properties, byte[] body) throws IOException {String message = new String(body, "UTF-8");System.out.println("消费者2接收到消息成功---> "+message);}};channel.basicConsume(Queue_Name_01, true, consumer);} catch (Exception e) {e.printStackTrace();}}
}
2.消费者two
package com.baidu.RabbitMQ.mq04;import java.io.IOException;import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Consumer;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;public class MultiConsumerTwo {private static final String Exchange_Name="rabbit:mq04:exchange:e01";private static final String Queue_Name_02="rabbit:mq04:queue:q02";private static final String Routing_Key_02="rabbit:mq04:routing:key:r.#";public static void main(String[] args) {try {ConnectionFactory factory = new ConnectionFactory();factory.setHost("127.0.0.1");Connection connection = factory.newConnection();Channel channel = connection.createChannel();channel.exchangeDeclare(Exchange_Name, BuiltinExchangeType.TOPIC);channel.queueDeclare(Queue_Name_02, true, false, false, null);channel.queueBind(Queue_Name_02, Exchange_Name, Routing_Key_02);Consumer consumer = new DefaultConsumer(channel) {@Overridepublic void handleDelivery(String consumerTag, Envelope envelope,AMQP.BasicProperties properties, byte[] body) throws IOException {String message = new String(body, "UTF-8");System.out.println("消费者2接收到消息成功---> "+message);}};channel.basicConsume(Queue_Name_02, true, consumer);} catch (Exception e) {e.printStackTrace();}}
}
RabbitMQ入门(五)-Topics(主题)相关推荐
- RabbitMQ入门到进阶
1.MQ简介 MQ 全称为 Message Queue,是在消息的传输过程中保存消息的容器.多用于分布式系统 之间进行通信. 2.为什么要用 MQ 1.流量消峰 没使用MQ 使用了MQ 2.应用解耦 ...
- RabbitMQ入门到进阶(Spring整合RabbitMQSpringBoot整合RabbitMQ)
1.MQ简介 MQ 全称为 Message Queue,是在消息的传输过程中保存消息的容器.多用于分布式系统 之间进行通信. 编辑切换为居中 添加图片注释,不超过 140 字(可选) 2.为什么要 ...
- rabbitmq入门(四)Topics主题模式
文章目录 Topics主题模式 代码实现 测试 总结 下一章 Topics主题模式 交换机类型为 topics - 将路由和某个模式匹配,# 匹配一个或者多个,* 匹配一个.例如交换机绑定的routi ...
- RabbitMQ入门(简介、搭建环境、五种工作模式)介绍
1. RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消 ...
- RabbitMQ第五个实操小案例——主题交换机(TopicExchange)
文章目录 RabbitMQ第五个实操小案例--主题交换机(TopicExchange) RabbitMQ第五个实操小案例--主题交换机(TopicExchange) TopicExchange 和 D ...
- RabbitMQ入门到掌握
RabbitMQ入门到掌握 一.消息队列 1.MQ 的相关概念 1.2 什么是MQ 1.2 为什么要用MQ ①流量消峰 ②应用解耦 ③异步处理 1.3 MQ 的分类 ①ActiveMQ ②Kafka ...
- RabbitMQ(五):Exchange交换器--topic
内容翻译自:RabbitMQ Tutorials Java版 RabbitMQ(一):Hello World程序 RabbitMQ(二):Work Queues.循环分发.消息确认.持久化.公平分发 ...
- RabbitMQ入门到精通
RabbitMQ 1. 消息中间件概述 1.1. 为什么学习消息队列 电子商务应用中,经常需要对庞大的海量数据进行监控,随着网络技术和软件开发技术的不断提高,在实战开发中MQ的使用与日俱增,特别是Ra ...
- 超详细的RabbitMQ入门
转载:超详细的RabbitMQ入门,看这篇就够了!-阿里云开发者社区 思维导图 一.什么是消息队列 消息指的是两个应用间传递的数据.数据的类型有很多种形式,可能只包含文本字符串,也可能包含嵌入对象. ...
- RabbitMQ六种队列模式-主题模式
前言 RabbitMQ六种队列模式-简单队列 RabbitMQ六种队列模式-工作队列 RabbitMQ六种队列模式-发布订阅 RabbitMQ六种队列模式-路由模式 RabbitMQ六种队列模式-主题 ...
最新文章
- 文本文件 java,java 写文本文件
- STM32 SPI难点浅析
- 我擦!迅雷的代码结构竟然被扒了精光~
- 自己也遇到了-db_recovery_file_dest_size 修改大一点
- C# 文件流 导入 导出
- centos6.5搭建mysql主从_mysql 主从配置,主-》windows,从-》centos6.5
- Android 系统 (79)---Android应用程序安装过程解析
- qt webkit 本地html5,Qt Webkit HTML5 Score
- Linux内核变迁杂谈——感知市场的力量
- 线性代数【二】:矩阵的概念与计算
- 似懂非懂的Comparable与Comparator
- 超级计算机比赛规则,介绍围棋的规则与玩法
- flac怎样转换成mp3格式
- 电商小程序基础开发教程(一)需求分析
- 华东交通大学计算机全国排名,华东交通大学世界排名、中国排名、专业排名
- 计算机无法打开cad文件,无法打开cad文件的解决方法
- 计算机电源选平衡,电脑里选择电源计划哪个好
- 怎么样导包测试JavaWeb代码?
- 安装PS出现“由于找不到VCRUNTIME 140_1.dll”的解决方法
- allure 下载地址