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

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

相关推荐
nbsaas-boot12 小时前
Go 项目中如何正确升级第三方依赖(Go Modules 实战指南)
开发语言·后端·golang
wadesir12 小时前
C++基本数据类型详解(零基础掌握C++核心数据类型)
java·开发语言·c++
哈里谢顿13 小时前
《10 分钟上手 RabbitMQ:用 Python 写一个“不丢消息”的迷你消息系统》
rabbitmq
skywalk816313 小时前
wow文件处理trinitycore的文件处理
开发语言·游戏
一路往蓝-Anbo14 小时前
STM32单线串口通讯实战(五):RTOS架构 —— 线程安全与零拷贝设计
c语言·开发语言·stm32·单片机·嵌入式硬件·观察者模式·链表
leiming614 小时前
c++ map容器
开发语言·c++·算法
坚持就完事了14 小时前
JavaScript
开发语言·javascript·ecmascript
多多*14 小时前
2026年1月3日八股记录
java·开发语言·windows·tcp/ip·mybatis
杨校14 小时前
杨校老师课堂备赛C++信奥之模拟算法习题专项训练
开发语言·c++·算法
5:0015 小时前
Python进阶语法
开发语言·python