RabbitMQ在Debian上的消息路由机制基于**交换机(Exchange)和绑定(Binding)**实现,核心是通过路由键(Routing Key)匹配规则将消息分发到目标队列,支持多种路由模式,具体如下:
| 类型 | 匹配规则 | 适用场景 |
|---|---|---|
| Direct | 路由键与绑定键完全精确匹配,如key1→key1绑定的队列。 | 点对点消息,如订单状态更新。 |
| Fanout | 忽略路由键,广播到所有绑定的队列。 | 群发消息,如系统公告。 |
| Topic | 路由键与绑定键通配符匹配(*匹配1个单词,#匹配0个或多个单词)。 | 主题订阅,如日志分类(error.*)。 |
| Headers | 基于消息头(Headers)的键值对匹配(支持x-match: all/any逻辑)。 | 复杂条件路由,如消息优先级过滤。 |
安装与配置
sudo apt update sudo apt install erlang rabbitmq-server sudo systemctl enable --now rabbitmq-server sudo rabbitmq-plugins enable rabbitmq_management 路由规则配置示例
# 声明交换机和队列 rabbitmqadmin declare exchange name=direct_exchange type=direct rabbitmqadmin declare queue name=queue1 # 绑定并指定路由键 rabbitmqadmin declare binding source=direct_exchange destination=queue1 routing_key=order.created rabbitmqadmin declare exchange name=topic_exchange type=topic rabbitmqadmin declare queue name=log_queue # 绑定路由键(匹配所有以"log."开头的消息) rabbitmqadmin declare binding source=topic_exchange destination=log_queue routing_key=log.* 消息验证
http://localhost:15672)查看队列消息,或使用命令行工具rabbitmqctl监控队列状态。rabbitmq_delayed_message_exchange)实现延迟队列等高级功能。参考来源: