RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)

 Direct 类型交换器指消息发送者通过交换器完全匹配路由键的方式将消息绑定到相应队列,然后传递给相应的接收者。

下面通过一个实例来说。

本实例通过配置不同的日志级别的路由键来发送和接收信息。

RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第1张图片

一、创建接收者(消费者)项目

RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第2张图片

       1.设置配置文件application.properties

           设置相应的RabbitMQ的服务器和相应的交换器名称,队列和路由键,如下图

        RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第3张图片

      2.创建日志级别的信息接收者,以INFO为例。

         InfoReceiver.java

      通过注解 @RabbitListener 将配置的交换器、队列、路由键绑定RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第4张图片

     ErrorReceiver.java 与info类似,即将相应的名称替换成配置文件里的error即可,交换器的名称是一样的。

 

二、 设置消息发送者(生产者)项目

    RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第5张图片

1.设置配置文件application.properties

           设置相应的RabbitMQ的服务器和相应的交换器名称和路由键,如下图。此处不需要队列名称,因为发送者只需要按照路由键的规则向交换器发送消息即可,路由器会通过消息头和路由键规则将消息绑定到相应的队列中。

RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第6张图片

2.创建发送者

Sender.java   设置相应的交换器、路由键。

RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第7张图片

3.测试类

RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第8张图片

运行上面的2个测试方法,都是每隔2秒,共发送10次消息,控制台输出如下

RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第9张图片

RabbitMQ 后台显示

RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第10张图片

RabbitMQ(四) : Direct 交换器(发布与订阅完全匹配)_第11张图片

从网页中可以看出,消息队列里多了2个新的队列,且有信息在传递。

你可能感兴趣的:(微服务)