flowchart TD
subgraph AMQP组件
A[Exchange] --> B[Direct Exchange]
A --> C[Topic Exchange]
A --> D[Fanout Exchange]
A --> E[Headers Exchange]
F[Queue] --> G[持久化队列]
F --> H[临时队列]
F --> I[延迟队列]
J[Binding] --> K[路由键绑定]
J --> L[主题模式绑定]
end
subgraph 协议层
M[AMQP 0-9-1]
N[AMQP 1.0]
end
subgraph 通信流程
O[生产者] -->|Publish| A
A -->|Route| F
F -->|Deliver| P[消费者]
P -->|Ack| F
end
style A fill:#f9f,stroke:#333,stroke-width:2px
style F fill:#9f9,stroke:#333,stroke-width:2px
flowchart TD
subgraph AMQP协议架构
A[协议层] --> B[帧层]
B --> C[通道层]
C --> D[会话层]
D --> E[连接层]
end
subgraph 消息路由机制
F[Exchange类型] --> G[Direct Exchange]
F --> H[Topic Exchange]
F --> I[Fanout Exchange]
F --> J[Headers Exchange]
K[路由规则] --> L[精确匹配]
K --> M[模式匹配]
K --> N[广播]
K --> O[Header匹配]
end
subgraph 消息投递流程
P[生产者] --> Q[建立连接]
Q --> R[创建通道]
R --> S[声明Exchange]
S --> T[发布消息]
T --> U[Exchange路由]
U --> V[Queue存储]
V --> W[消费者接收]
W --> X[ACK确认]
end
subgraph 消息确认机制
Y[消息确认类型] --> Z[自动确认]
Y --> AA[手动确认]
Y --> AB[事务模式]
AC[确认流程] --> AD[消息投递]
AD --> AE[消费者处理]
AE --> AF{处理成功?}
AF -->|是| AG[发送ACK]
AF -->|否| AH[发送NACK/Reject]
AH --> AI[消息重入队列]
end
subgraph 持久化机制
AJ[Exchange持久化] --> AK[durable=true]
AJ --> AL[重启后保留]
AM[Queue持久化] --> AN[durable=true]
AN --> AO[消息持久化]
AP[消息持久化] --> AQ[persistent=true]
AQ --> AR[写入磁盘]
end
subgraph 高可用机制
AS[镜像队列] --> AT[Queue复制]
AT --> AU[主从同步]
AV[集群模式] --> AW[多节点]
AW --> AX[故障转移]
AY[消息备份] --> AZ[持久化存储]
AZ --> BA[灾难恢复]
end
subgraph 流量控制
BB[生产者限流] --> BC[channel.flow]
BC --> BD[控制发送速率]
BE[消费者限流] --> BF[预取计数]
BF --> BG[basic.qos]
BH[队列限流] --> BI[最大长度]
BI --> BJ[溢出策略]
end
subgraph 事务与可靠性
BK[事务模式] --> BL[tx.select]
BL --> BM[tx.commit]
BM --> BN[tx.rollback]
BO[发布确认] --> BP[confirm.select]
BP --> BQ[异步确认]
BQ --> BR[批量确认]
end
A --> P
F --> U
Y --> AC
AJ --> AS
BB --> BK