Direct 类型交换器指消息发送者通过交换器完全匹配路由键的方式将消息绑定到相应队列,然后传递给相应的接收者。
下面通过一个实例来说。
本实例通过配置不同的日志级别的路由键来发送和接收信息。
一、创建接收者(消费者)项目
1.设置配置文件application.properties
设置相应的RabbitMQ的服务器和相应的交换器名称,队列和路由键,如下图
2.创建日志级别的信息接收者,以INFO为例。
InfoReceiver.java
通过注解 @RabbitListener 将配置的交换器、队列、路由键绑定
ErrorReceiver.java 与info类似,即将相应的名称替换成配置文件里的error即可,交换器的名称是一样的。
二、 设置消息发送者(生产者)项目
1.设置配置文件application.properties
设置相应的RabbitMQ的服务器和相应的交换器名称和路由键,如下图。此处不需要队列名称,因为发送者只需要按照路由键的规则向交换器发送消息即可,路由器会通过消息头和路由键规则将消息绑定到相应的队列中。
2.创建发送者
Sender.java 设置相应的交换器、路由键。
3.测试类
运行上面的2个测试方法,都是每隔2秒,共发送10次消息,控制台输出如下
RabbitMQ 后台显示
从网页中可以看出,消息队列里多了2个新的队列,且有信息在传递。