RabbitMQ
2025/5/21大约 2 分钟
RabbitMQ 中有哪些常见的交换器(Exchange)类型,它们有什么区别?
回答: 常见的交换器类型有 Direct、Fanout、Topic 和 Headers。
- Direct :消息会被发送到 Binding Key 和 Routing Key 完全匹配的队列。适用于需要精确匹配的场景,比如根据日志级别将日志消息发送到不同队列。
- Fanout:消息会被发送到所有绑定到该交换器的队列,忽略 Binding Key。常用于广播消息的场景,比如群发通知。
- Topic:消息会根据 Routing Key 和 Binding Key 的模式匹配规则发送到队列。Binding Key 可以使用通配符,比如 *.log 表示匹配所有以 .log 结尾的 Routing Key,适用于需要按规则分发消息的场景。
- Headers:不依赖于 Routing Key 与 Binding Key 的匹配规则,而是根据发送的消息内容中的 headers 属性进行匹配。在实际应用中较少使用。