二、消息中间件RabbitMQ(二)
1、基于FanoutExchange的消息模型
FanoutExchange是交换机的一种,有广播消息的作用,也就是当消息进入到交换机这个中转站的时候,交换机会检查哪个队列跟自己绑定在一起的。
找到队列后,将消息传输到绑定的队列中,然后让队列中的消费者进行监听消费。
FanoutExchange这种交换机具有广播式的作用,即使绑定了路由也不会起作用,所以不需要根据路由判断绑定到哪个队列。
基于FanoutExchange消息模型结构图

1.1、对象类型消息
- 使用场景:将一个实体对象作为消息,并发送到基于FanoutExchange的消息模型中,最后由绑定的多条队列对应的消费者进行监听消费。
1、在application.properties配置文件中新增FanoutExchange消息模型对应的消息模型名称
1 | ###############基于FanoutExchange消息模型############### |
2、在RabbitMQConfig配置类中新建一个新的用来发送FanoutExchange消息模型的队列、交换机、路由并进行绑定
1 | //基于FanoutExchange交换机消息模型 |
3、发送FanoutExchange消息模型的生产者
1 | package com.victor.component.fanoutExchange; |
4、接收FanoutExchange消息模型的消费者
1 | package com.victor.component.fanoutExchange; |
5、FanoutExchange消息模型的测试方法
1 |
|
6、在控制台查看FanoutExchange消息模型运行结果

7、在RabbitMQ管理后台查看FanoutExchange消息模型的队列和交换机
- 查看交换机

- 查看队列

2、总结
- 基于FanoutExchange消息模型主要的核心组件是交换机和队列,一个交换机可以对应并绑定多个队列,从而对应多个消费者。
- FanoutExchange消息模型适用于业务数据需要广播式传输的场景,比如用户操作写日志
- 当用户在系统中做了某种操作后,需要在业务系统中将用户的操作内容写入到数据库
- 同时还需要单独将用户的操作内容传输到日志系统进行存储,以便后续进行日志分析
- 可以将用户的操作日志封装成实体对象,将它序列化为JSON数据当消息,然后采用FanoutExchange广播式交换机发送、接收、处理。
- 本文作者: Victor Dan
- 本文链接: https://victorblog.github.io/2018/07/09/消息中间件RabbitMQ-二/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
