首先可以去官方看看第五章节讲的一些内容: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(主题)相关推荐

  1. RabbitMQ入门到进阶

    1.MQ简介 MQ 全称为 Message Queue,是在消息的传输过程中保存消息的容器.多用于分布式系统 之间进行通信. 2.为什么要用 MQ 1.流量消峰 没使用MQ 使用了MQ 2.应用解耦 ...

  2. RabbitMQ入门到进阶(Spring整合RabbitMQSpringBoot整合RabbitMQ)

    1.MQ简介 MQ 全称为 Message Queue,是在消息的传输过程中保存消息的容器.多用于分布式系统 之间进行通信. ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 2.为什么要 ...

  3. rabbitmq入门(四)Topics主题模式

    文章目录 Topics主题模式 代码实现 测试 总结 下一章 Topics主题模式 交换机类型为 topics - 将路由和某个模式匹配,# 匹配一个或者多个,* 匹配一个.例如交换机绑定的routi ...

  4. RabbitMQ入门(简介、搭建环境、五种工作模式)介绍

    1. RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消 ...

  5. RabbitMQ第五个实操小案例——主题交换机(TopicExchange)

    文章目录 RabbitMQ第五个实操小案例--主题交换机(TopicExchange) RabbitMQ第五个实操小案例--主题交换机(TopicExchange) TopicExchange 和 D ...

  6. RabbitMQ入门到掌握

    RabbitMQ入门到掌握 一.消息队列 1.MQ 的相关概念 1.2 什么是MQ 1.2 为什么要用MQ ①流量消峰 ②应用解耦 ③异步处理 1.3 MQ 的分类 ①ActiveMQ ②Kafka ...

  7. RabbitMQ(五):Exchange交换器--topic

    内容翻译自:RabbitMQ Tutorials Java版 RabbitMQ(一):Hello World程序 RabbitMQ(二):Work Queues.循环分发.消息确认.持久化.公平分发 ...

  8. RabbitMQ入门到精通

    RabbitMQ 1. 消息中间件概述 1.1. 为什么学习消息队列 电子商务应用中,经常需要对庞大的海量数据进行监控,随着网络技术和软件开发技术的不断提高,在实战开发中MQ的使用与日俱增,特别是Ra ...

  9. 超详细的RabbitMQ入门

    转载:超详细的RabbitMQ入门,看这篇就够了!-阿里云开发者社区 思维导图 一.什么是消息队列 消息指的是两个应用间传递的数据.数据的类型有很多种形式,可能只包含文本字符串,也可能包含嵌入对象. ...

  10. RabbitMQ六种队列模式-主题模式

    前言 RabbitMQ六种队列模式-简单队列 RabbitMQ六种队列模式-工作队列 RabbitMQ六种队列模式-发布订阅 RabbitMQ六种队列模式-路由模式 RabbitMQ六种队列模式-主题 ...

最新文章

  1. 文本文件 java,java 写文本文件
  2. STM32 SPI难点浅析
  3. 我擦!迅雷的代码结构竟然被扒了精光~
  4. 自己也遇到了-db_recovery_file_dest_size 修改大一点
  5. C# 文件流 导入 导出
  6. centos6.5搭建mysql主从_mysql 主从配置,主-》windows,从-》centos6.5
  7. Android 系统 (79)---Android应用程序安装过程解析
  8. qt webkit 本地html5,Qt Webkit HTML5 Score
  9. Linux内核变迁杂谈——感知市场的力量
  10. 线性代数【二】:矩阵的概念与计算
  11. 似懂非懂的Comparable与Comparator
  12. 超级计算机比赛规则,介绍围棋的规则与玩法
  13. flac怎样转换成mp3格式
  14. 电商小程序基础开发教程(一)需求分析
  15. 华东交通大学计算机全国排名,华东交通大学世界排名、中国排名、专业排名
  16. 计算机无法打开cad文件,无法打开cad文件的解决方法
  17. 计算机电源选平衡,电脑里选择电源计划哪个好
  18. 怎么样导包测试JavaWeb代码?
  19. 安装PS出现“由于找不到VCRUNTIME 140_1.dll”的解决方法
  20. allure 下载地址

热门文章

  1. 简单易学的深度学习算法:Wide Deep Learning
  2. Redis及Spring-Data-Redis入门学习
  3. SPARK:作业基本运行原理
  4. Google play billing(Google play 内支付)
  5. XML文件中的CDATA的使用.
  6. Ubuntu 15.1 unity在顶部面板显示系统CPU/内存/网络速度
  7. 理解水平扩展和垂直扩展
  8. Codeforces 164 E Compatible Numbers
  9. citrix POC环境准备
  10. android wifi工作流程