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

RabbitMQ 实验入门

使用 spring-amqp 实验

发布订阅模型

fanoutExchange 实验

在这里插入图片描述
实验步骤:

  1. 编写定义 队列 和 交换机 绑定关系的代码
  2. 创建接口,模拟生产者,方便调试(接受参数 队列名、路由键、[消息])
  3. 定义消费者
    代码示例:
@Configuration
public class FanoutConfig {@Beanpublic FanoutExchange fanoutexchange() {//创建广播模式交换机return new FanoutExchange("yoj.fanoutexchange");}// 创建队列@Beanpublic Queue fanoutQueue() {return new Queue("fanout.queue1");}// 绑定交换机和队列之间的关系@Beanpublic Binding bindingQueue1(Queue fanoutQueue1, FanoutExchange fanoutExchange) {return BindingBuilder.bind(fanoutQueue1).to(fanoutExchange);}
}
 @GetMapping("/testMQ/{queueName}/{routingKey}")public BaseResponse<String> testMQ(@PathVariable("queueName") String queueName, @PathVariable("routingKey") String routingKey) {rabbitTemplate.convertAndSend(queueName, routingKey, "编译执行代码,返回结果");return ResultUtils.success("发送成功");}

实验效果

发消息
在这里插入图片描述
在队列中接受到了消息
在这里插入图片描述
在这里插入图片描述

direct 案例

  • 定义 关系
 @RabbitListener(bindings = @QueueBinding(value=@Queue("direct.queue1"), exchange = @Exchange(name="direct.exchange", type = ExchangeTypes.DIRECT), key={"direct.key1"}))public void directQueue1Listen(String in) {System.out.println("direct.queue1:Received message: " + in);}@RabbitListener(bindings = @QueueBinding(value=@Queue("direct.queue2"), exchange = @Exchange(name="direct.exchange", type = ExchangeTypes.DIRECT),  key={"direct.key2"}))public void directQueue2listen(String in) {System.out.println("direct.queue2:Received message: " + in);}

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 【Ubuntu】DNS设置不生效/重启被重置
  • TypeSctipt学习第二篇
  • uni-app之旅-day01-home页
  • 第18周 3-过滤器
  • 关于公司小程序项目在登录流程获取token并全局使用的梳理(学习篇)
  • 【从零开始实现stm32无刷电机FOC】【实践】【7.1/7 硬件设计】
  • 25 基于51单片机的温度电流电压检测系统(压力、电压、温度、电流、LCD1602)
  • MongoDB入门
  • 第十三届蓝桥杯真题Python c组D.数位排序(持续更新)
  • A Learning-Based Approach to Static Program Slicing —— 论文笔记
  • web应用合规(一)双因子认证2FA解决方案
  • 音视频通话 SDK
  • 数据结构——队列的基本操作
  • [leetcode] 70. 爬楼梯
  • 前端工程化之vite
  • 自己简单写的 事件订阅机制
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • exports和module.exports
  • httpie使用详解
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript学习总结——原型
  • Netty源码解析1-Buffer
  • nfs客户端进程变D,延伸linux的lock
  • SpringBoot 实战 (三) | 配置文件详解
  • v-if和v-for连用出现的问题
  • 初识 beanstalkd
  • 排序(1):冒泡排序
  • 前端存储 - localStorage
  • 如何设计一个比特币钱包服务
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 微信开放平台全网发布【失败】的几点排查方法
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 字符串匹配基础上
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​linux启动进程的方式
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • $.proxy和$.extend
  • (C)一些题4
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (C语言)二分查找 超详细
  • (分布式缓存)Redis持久化
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (小白学Java)Java简介和基本配置
  • (转)iOS字体
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET Core Web APi类库如何内嵌运行?
  • .NET IoC 容器(三)Autofac
  • .NET是什么
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .pyc文件是什么?
  • /proc/stat文件详解(翻译)