RabbitMq 的消息交换器有三种常用的交换模式,分别是
- direct 订阅模式,发布与订阅,完全匹配
- fanout 广播模式
- topic 主题,规则匹配
今天这篇文章介绍 rabbitmq 如何基于 direct 模式进行发送消息
这里我们准备两个项目。
- 消息生产项目(rabbit-provider)
- 消息接收项目(rabbit-consumer)
模拟项目中统一处理日志的效果,消息生产项目发送 info 和 error 级别的日志
消息接收项目对接收到的消息进行处理。
介绍一下流程:
消息生产者生成消息,绑定 交换器 和 路由键 进行发送,消息接收者通过 绑定 队列,交换器,路由键 进行消息接收。
此处,rabbit 先 通过确实同一个 交换器的 消息,在进行确定 路由键,来绑定 消息的生产者和消息的消费者。
1.消息接收项目(rabbit-consumer)
1.yml配置
spring:
rabbitmq:
host: 127.0.0.1
port: 5672
username: zhangzq
password: ******
# 1.交换机名称
# 2.队列名称
# 路由键
# 设置交换机的名称
mq:
config:
exchange: log.direct
queue:
# info 队列名称
info: log.info
# info 队列的路由键
info.routing.key: log.info.routing.key
# error 队列名称
error: log.error
# error 队列的路由键
error.routing.key: log.error.routing.key
2.pom.xml配置
和https://blog.csdn.net/yali_aini/article/details/87544229 这篇文章上的 配置一样,只需要添加 rabbitmq 的依赖即可
3.消息接受类编写
InfoConsumer
使用 @RabbitListener 进行队列绑定,具体使用 @QueueBinding 的 value(队列),exchange(交换器) , ke