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

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

相关推荐
小钟不想敲代码4 分钟前
Python(一)
开发语言·python
ji_shuke7 分钟前
canvas绘制拖拽箭头
开发语言·javascript·ecmascript
qq_3363139311 分钟前
java基础-IO流(缓冲流)
java·开发语言
青岛少儿编程-王老师13 分钟前
CCF编程能力等级认证GESP—C++2级—20251227
java·开发语言·c++
沐知全栈开发19 分钟前
jQuery 杂项方法
开发语言
wregjru26 分钟前
【C++】2.6 红黑树及其实现(附代码)
开发语言·c++
2501_9462447836 分钟前
Flutter & OpenHarmony OA系统设置页面组件开发指南
开发语言·javascript·flutter
一分半心动39 分钟前
清理C盘的python脚本
开发语言·python
一只鹿鹿鹿1 小时前
网络信息与数据安全建设方案
大数据·运维·开发语言·网络·mysql
a努力。1 小时前
国家电网Java面试被问:慢查询的优化方案
java·开发语言·面试