RabbitMQ广播模式
Fanout 交换机
工作原理
Fanout 交换机会将接收到的消息广播给所有与之绑定的队列,不考虑路由键。每个绑定到 fanout 交换机的队列都会接收到消息。
使用场景
- 广播消息:所有消费者都需要接收到相同的消息。
- 日志广播:将日志消息广播给多个日志处理服务。
Direct 交换机
工作原理
Direct 交换机根据消息的路由键(routing key)将消息定向传递到绑定的队列。每个队列绑定时指定一个路由键,只有消息的路由键匹配时,消息才会被传递到该队列。
使用场景
- 精确匹配:需要将消息发送到特定的队列,例如特定的日志级别(info, warning, error)。
- 定向通知:不同类型的消息传递给不同的消费者。
Topic 交换机
工作原理
Topic 交换机根据路由键模式匹配(模式匹配允许使用通配符)将消息传递到绑定的队列。路由键可以是一个点号分隔的字符串,绑定键可以包含通配符 *
(匹配一个单词)和 #
(匹配零个或多个单词)。
使用场景
- 复杂路由:根据消息内容的多个维度进行路由,例如按地区和服务类型进行消息分发。
- 多级过滤:例如,日志系统中按服务和日志级别过滤。