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

RabbitMQ 实验入门

使用 spring-amqp 实验

发布订阅模型

fanoutExchange 实验

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

  1. 编写定义 队列 和 交换机 绑定关系的代码
  2. 创建接口,模拟生产者,方便调试(接受参数 队列名、路由键、[消息])
  3. 定义消费者
    代码示例:
@Configuration
public class FanoutConfig {
    @Bean
    public FanoutExchange fanoutexchange() {
        //创建广播模式交换机
        return new FanoutExchange("yoj.fanoutexchange");
    }
    // 创建队列
    @Bean
    public Queue fanoutQueue() {
        return new Queue("fanout.queue1");
    }
    // 绑定交换机和队列之间的关系
    @Bean
    public 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);
    }

在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/news/332000.html

相关文章:

  • opencv-如何获取图像区域特定像素区域大小
  • 配置Nginx以支持通过HTTPS回源到CDN
  • Solidity 存储和内存管理:深入理解与高效优化
  • ESP01 AT指令学习
  • AndroidStudio编译问题
  • Yolov8改进轻量级网络Ghostnetv2
  • 828华为云征文|华为云Flexus云服务器X实例——uniapp功能开发、搭建股票系统选择用什么服务器比较好?
  • 在掌控板中加载人教版信息科技教学指南中的educore库
  • C++系列-STL容器中的排序算法
  • 【云原生安全篇】Cosign助力Harbor验证镜像实践
  • 网站开发基础:JavaScript
  • AWS Redshift 如何让新的table创建即自动赋予权限
  • SQL高级语法
  • SSH(安全外壳协议)可以基于多种加密算法
  • Elasticsearch 8.16 和 JDK 23 中的语言环境变化
  • php与python建站的区别有哪些
  • 【学习笔记】手写一个简单的 Spring IOC
  • 【前端开发入门】前端开发环境配置
  • Flask-1
  • Linux系统安装教程