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)实现延迟队列等高级功能。参考来源: