当前位置: 首页 > news >正文

RabbitMQ - 06 - Topic交换机

目录

控制台创建队列与交换机

编写消费者方法

编写生产者测试方法

结果


Topic交换机与Direct交换机基本一致

可参考 这篇帖子 http://t.csdnimg.cn/AuvoK

topic交换机与Direct交换机的区别是

  • Topic交换机接收的消息RoutingKey必须是多个单词,以 . 分割

  • Topic交换机与队列绑定时的bindingKey可以指定通配符

  • #:代表0个或多个词

  • *:代表1个词

实现Topic交换机

控制台创建队列与交换机

创建两个队列

创建topic交换机

绑定队列和交换机

注意routing key 一个是 china 开头  一个是news结尾

编写消费者方法

package cn.itcast.mq.lintener;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Slf4j
@Component
public class MQListener {@RabbitListener(queues = "topic.queue1")public void listenTopicQueue1(String message)  {log.info("消费者1收到了消息:........... {}", message);
//        System.out.println("消费者收到了消息: " + message);}@RabbitListener(queues = "topic.queue2")public void listenTopicQueue2(String message)  {log.info("消费者2收到了消息: {}", message);
//        System.out.println("消费者收到了消息: " + message);}}

编写生产者测试方法

package cn.itcast.mq.helloworld;import org.apache.logging.log4j.message.Message;
import org.junit.jupiter.api.Test;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.messaging.converter.StringMessageConverter;@SpringBootTest
public class SpringAMQPTest {@Autowiredprivate RabbitTemplate rabbitTemplate;//  topic交换机@Testvoid testTopicExchange(){String exchangeName = "hmall.topic";String message = "hello, topic";rabbitTemplate.convertAndSend(exchangeName,"china.news",message);}}

结果

发送了一条消息,两个消息队列都获取到了,

因为发送者的routing key刚好满足两个消息队列的要求,因此这两个queue都能接收到这条消息

相关文章:

  • 交易平台开发:构建安全/高效/用户友好的在线交易生态圈
  • 微信小程序uniapp+django+python的酒店民宿预订系统ea9i3
  • 早鸟票最后3天!「黄钊的AI日报·第三季」
  • CentOS/Fedora/Ubuntu/Debian 系统 wget 命令
  • Spring Cloud Gateway自定义过滤器
  • spring boot3token拦截器链的设计与实现
  • C语言初学10:typedef
  • 【Python】time模块
  • 采用 Amazon DocumentDB 和 Amazon Bedrock 上的 Claude 3 构建游戏行业产品推荐
  • 03.axios数据提交和错误处理
  • Spring Security的API Key实现SpringBoot 接口安全
  • unity学习(53)——选择角色界面--分配服务器返回的信息
  • 【Linux】gcc与make、makefile
  • Golang + Redis解决缓存击穿(双层缓存)
  • 【JavaEE初阶 -- 多线程】
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • angular2 简述
  • Angular数据绑定机制
  • CAP 一致性协议及应用解析
  • create-react-app项目添加less配置
  • css系列之关于字体的事
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Git的一些常用操作
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • php的插入排序,通过双层for循环
  • Python 基础起步 (十) 什么叫函数?
  • python大佬养成计划----difflib模块
  • 大型网站性能监测、分析与优化常见问题QA
  • 给新手的新浪微博 SDK 集成教程【一】
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 理解在java “”i=i++;”所发生的事情
  • 七牛云假注销小指南
  • 入手阿里云新服务器的部署NODE
  • 深度学习在携程攻略社区的应用
  • 通过几道题目学习二叉搜索树
  • 微信小程序开发问题汇总
  • 消息队列系列二(IOT中消息队列的应用)
  • 学习笔记TF060:图像语音结合,看图说话
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 在Unity中实现一个简单的消息管理器
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (翻译)terry crowley: 写给程序员
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (十) 初识 Docker file