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

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

相关推荐
方也_arkling6 小时前
【Java-Day08】static / final / 枚举
java·开发语言
风吹夏回6 小时前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
Chengbei116 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1126 小时前
web-第一次课后作业
java·开发语言·idea
小熊Coding6 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋96 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
xiaoshuaishuai87 小时前
C# 内存管理与资源泄漏
开发语言·c#
lsx2024067 小时前
SVN 检出操作
开发语言
basketball6168 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
旺仔来了8 小时前
不联网的Linux下部署python环境
linux·开发语言·python