在 RabbitMQ 中,消息从生产者发送到消费者队列的过程中是如何完成路由的?请列举并说明几种典型的路由策略及其适用场景。
考察说明
考察对 RabbitMQ 路由机制和常见交换器类型的理解。
回答思路
- 【回答框架 1】RabbitMQ 的消息路由依赖交换器与绑定。生产者发送消息到交换器,交换器按类型和路由键把消息分发到匹配队列。
- 【回答框架 2】常见交换器:Direct 精确匹配路由键;Topic 用 * 和 # 通配符匹配;Fanout 忽略路由键广播;Headers 按消息头匹配。
- 【回答框架 3】Direct 适合按业务标识精确分发,Topic 适合主题层级过滤,Fanout 适合广播。
- 【回答框架 4】路由策略与绑定关系、队列属性相关,需按场景选择。
- 【关键点 1】RabbitMQ 路由核心是交换器加绑定加路由键。
- 【关键点 2】Direct 精确匹配路由键。
- 【关键点 3】Topic 支持通配符匹配。
- 【关键点 4】Fanout 广播所有绑定队列。
- 【关键点 5】Headers 按消息头匹配。
- 【易错点 1】混淆 Fanout 与 Topic,Fanout 不检查路由键。
- 【易错点 2】误以为路由键可以任意正则匹配,实际 Topic 只支持 * 和 #。
- 【易错点 3】忘记绑定关系导致消息无法路由而丢失。