springAMQP自定义direct交换机进行消息指定推送

rabbitmq中,direct交换机会提供一个BindingKey,与之对应的是发布消息时候指定的routingKey

在向交换机发布消息的时候,direct会根据附带的routingKey去找在绑定时候队列的BindingKey,如果二者匹配,则向queue推送消息

  1. 首先我们需要在rabbitmq-web端进行direct交换机的创建与绑定操作,同时我们需要指定bandingkey
  2. 我们创建两个direct_queue1&direct_queue2
  3. 在项目中进行代码实现

首先进行listener的添加(参考fanout)

复制代码
@RabbitListener(queues = "direct_queue1")
public void directQ1(String msg) throws InterruptedException {
    System.out.println("direct1接收到的msg:"+msg);
    Thread.sleep(20);
}


@RabbitListener(queues = "direct_queue2")
public void directQ2(String msg) throws InterruptedException {
    System.out.println("direct2接收到的msg:"+msg);
    Thread.sleep(20);
}

然后进行springTest的测试

复制代码
@Test
void testSendMsgToFanout(){
    String exchangeName = "cybg.direct";
    String msg = "direct everyone";
    rabbitTemplate.convertAndSend(exchangeName,"2",msg);
}

我们在这次需要指定routingkey,就是我们当时上面约定好的bindingkey

运行并查看控制台可以发现,消费者已经拿到了指定队列中的消息

相关推荐
MY_TEUCK3 小时前
【Java 后端 | Nacos 注册中心】微服务治理原理、选型与注册发现实战
java·开发语言·微服务
测试员周周3 小时前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest
光泽雨4 小时前
c#中的Type类型
开发语言·前端
见叶之秋4 小时前
C++基础入门指南
开发语言·c++
计算机安禾4 小时前
【c++面向对象编程】第42篇:模板特化与偏特化:为特定类型定制实现
开发语言·c++·算法
qq_401700414 小时前
Qt 项目中使用 QSS 的全面总结
开发语言·qt
玖釉-5 小时前
C++ 中的循环语句详解:while、do...while、for、嵌套循环与循环控制
开发语言·c++·算法
XMYX-05 小时前
37 - Go env 环境变量:配置管理与运行时控制
开发语言·golang
一楼的猫5 小时前
从文本特征分析看网文平台AI检测:3个被忽视的指标
开发语言·人工智能·学习方法·ai编程·ai写作·ai自动写作
yuan199975 小时前
基于MATLAB的梁非线性动力学方程编程实现框架
开发语言·matlab