[ Producer ]
|
| publish(message, routing_key)
v
[ Exchange ]
/ | \
/ | \
binding / | \ binding
/ | \
v v v
[ Queue A ] [ Queue B ] [ Queue C ]
| | |
| | |
v v v
[Consumer] [Consumer] [Consumer]
消息处理结果:
1. ack -> RabbitMQ 认为这票包裹已完成,可删除
2. nack/reject+requeue=true
-> 重新放回队列,等待再次派送
3. nack/reject+requeue=false
-> 不再回原队列,可进入死信路径
4. TTL 到期 / 队列满 / quorum delivery-limit
-> 进入 Dead Letter Exchange(死信交换机)再压缩成一句:
Producer 负责寄件
Exchange 负责分拣
Queue 负责暂存
Consumer 负责处理
Binding 决定连接规则
Routing Key 决定包裹标签